当前位置: 首页 > news >正文

十九冶成都建设网站/网站维护是什么意思

十九冶成都建设网站,网站维护是什么意思,网站制作 优帮云,广州微信网站建设如何runtime(运行时) 官方:iOS黑魔法 1.OC运行时候转化为了runtime运行时候的C语言代码 2.是一套C语言的API (C语言函数库) 动态库/静态库 静态库:独立库 一个项目中包含了这个库 动态库&#xff1…

runtime(运行时) 官方:iOS黑魔法

1.OC运行时候转化为了runtime运行时候的C语言代码

2.是一套C语言的API (C语言函数库)

 

动态库/静态库

静态库:独立库  一个项目中包含了这个库

动态库:共享库   一个项目中不包含库

 

iOS伪后台 :应用程序被挂起    只有特定的几个可以运行(loaction   应用   网络通话)只有这三种才可以

iOS是伪后台 其实也就是单进程  同一时间只有一个app运行   故此时此刻 所以一般是苹果是静态库

 

 

2014年以前 iOS程序里面是不支持动态库的,库克开放了很多动态库

swift的出现了开始  动态库出现了在了iOS的世界   苹果的一大突破

iOS要慢慢的开源  

 

OC的程序是怎么变成C语言的代码   ?????

OS X  --command 命令行----

hs—cd到main.m目录   

手动变异   hs clang 变异完了多了一个main.cpp  你可以看到一个代码

 

通过objc_msgSend 发送了一个名字为 sel_egisterName的消息

 

如何手写runtime运行时代码?????

 

 

 

runtime有什么作用????????????

1.runtime是一个OC的底层实现 ,用起来麻烦  性能很高 而且它能完成OC永远无法完成的功能

2.程序运行的过程中,帮你动态的创建一个类 

3,在程序的运行过程中   动态为某个类添加属性 和方法  修改属性 和方法

4.遍历一个类的所有成员变量(NB的框架用到了,字典转模型框架MJExtension和JSONModel用到了)

大量用到了runtime运行时

5.runtime重要使用场景 归档

 

 

 

 

 

egg:如何去使用runtime ?????

两个门牌号头文件: <objc/runtime>   <objc/message>

runtime必备常识:1. Method 成员方法         2. Ivar  成员属性  

其实还有分类和属性    

打开Xcode       创建一个iOS应用         

 

步骤:

1.导入<objc/runtime>   <objc/message>头文件

2.可以去修改头文件单加注释  一般不要修改        UIKIt框架可以做一个备份 进去了吧Header可以拷贝一份

3.进去官方文档  runtime --Objec-c Runtime Reference

里面有很多方法    ---class_copyIvarList 成员变量列表拷贝  返回值是一个 Ivar *  在C语言里面 Ivar是一个结构体   这个是一个结构体指针     指针的操作和数组差不多   给他一个角标的会指向不同的东西    C语言指针的特色和特点    

 

还有个函数     ---class_copyMethodList

创建一个Person 里面有一些属性

 

三种方法去拿到类的属性  

1.倒入头文件   

2.NSClassFromString(通过字符串返回class) 这个在main.m文件中

3。这个方法不用导入头文件就可以    用一个指针传递 Outcount 通过指针去改变对应内存中count的值

 

 

获取到了成员变量的个数

接下来拿到每一个成员变量

 

连对象都没有创建 就可以拿到她的成员变量 

ivars[0]返回一个 Ivar   *ivar = ivars[0];

Ivar是Runtime的成员变量    Ivar_getName(ivar)不会产生一个数据越界的问题   

Ivar_getName(ivar)能得到一个const char * 类型  可以打印出来的他的属性  

 

字典转模型  遍历的每一个属性的万一你的

 

 

最后进去一个Person的.m文件    外界一般是不能访问的 

这样你在.m加上interface  你可以随意加上属性  然后你就可以通过runtime在里面T拿到添加的属性

 

你可以对PageControl控件的6个属性 

你想把pageControl下面的小点点 修改成正方形  你怎么修改?????

你可以的拿到她的属性用KVC  setvalueforkey   私有的API不能上线 但是runtime可以上线     pagrcontrol去改的话应该可以上线

 

 

归档的runtime使用

command +L  加上 你想跳的行

 

如何将属性Person *p的p归档

归档的话先拿到沙盒路径        

NSString *DocPath = NSSsearchPath。。。。。。。。  返回了数组   里面一堆路径 然后来易个first或者last

一个项目中Docment只有一个  

 

 

归档   1个协议和2个方法

当你的项目卸载了  你可以做一个接档的过程就可以拿出来你存储的数据   不安全 这是个数据的持久化

如何将归档用到极致????????

归档的前提是  归档一个OC对象的底层原理是  

1.OC对象有属性   将属性拆分出来   拆分为字典     NSString :Value       

  然后将这些字典  KVC写入文件 

 

2.在实际开发中一般是去归档模型  里面的属性太多了  怎么去写

如何让归档变得很简单???????

这个时候你可以新建一个类   HankCoding 

HankCoding里面去遵守一个协议  (自定义的协议)   然后去实现两个方法

这个里面的话你可以用runtime       导入头文件

在这个里面实现升级

 

当使用C语言函数的时候   应该new   Creat 和Copy 应该要释放   你因该注意到一个的内存管理的问题    不接受ARC

指针你干不掉   你应该在最后加上free(ivars)

 

这个时候你可以去删掉原来的协议   去继承 HKCodeing    HKCodeing继承NSCoding

这个时候的字节数  里面有数据

 

 

 

 

 

面试题:

如何让C语言的函数有多个返回值???????

1.可以通过返回一个数组指针  但考你指针传递

唯一的方法  让它的指针作为函数的参数

 

转载于:https://www.cnblogs.com/shitou123/p/6422440.html

http://www.lbrq.cn/news/1590193.html

相关文章:

  • 定制网站的优势/各大网站
  • 国外网站推广/友情链接查询友情链接检测
  • 专做定制型网站/足球最新世界排名表
  • 政府网站建设 会议/网络营销顾问招聘
  • 做哪个行业的网站好/一键建站
  • 男女插孔做暖暖的试看网站大全/网页开发流程
  • 做网站学什么语言好/百度竞价关键词优化
  • 合肥建设网站资质办理/市场营销推广方案怎么做
  • 那个网站可以查询美做空基金/太原网站制作推广
  • 如何建立国外网站/china东莞seo
  • 下列关于wap手机网站/怎么宣传自己的产品
  • 什么网站可以做兼职 知乎/电商网站推广方案
  • 设计网站视频教程/seo兼职外包
  • 网站建站的标准/人工智能培训班
  • 网站首页三张海报做多大/地推接单平台网
  • wordpress阿里云推送/seo网站推广软件
  • iphone网站/如何建立自己的网站平台
  • 是一个网站或站点的第一个网页/app开发自学
  • 专业烟台房产网站建设/广州优化疫情防控举措
  • 2023年文职招聘岗位表/北京seo网络推广
  • 济南靠谱做网站公司/佛山百度推广公司
  • 网站怎么做百度快照/中山百度推广公司
  • 手表品牌/安徽seo团队
  • 重庆有那些制作网站的公司/网站建设技术外包
  • 贵阳网站制作免费/竞价推广哪里开户
  • 做资源网站怎么不封/快速提高排名
  • 网页界面设计流程/神马搜索seo优化排名
  • 免费设计真的免费/seo日常工作都做什么的
  • 无锡做网站公司/怎么做线上销售
  • 做响应式网站有什么插件/济南百度推广代理商
  • 专题:2025财务转型与AI赋能数字化报告|附30+份报告PDF汇总下载
  • 从零开始用 Eclipse 写第一个 Java 程序:HelloWorld 全流程 + 避坑指南
  • MATLAB深度学习之数据集-数据库构建方法详解
  • Android PDFBox 的使用指南
  • DM数据库的安全版本SYSDBA无法修改其他用户密码?
  • 4、docker数据卷管理命令 | docker volume