首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
小灰灰码农
掘友等级
程序员
越努力,越幸运。
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
KVO 底层原理
KVO是通过isa-swizzling技术实现的(依赖于Runtime),当观察某个类的属性时,系统通过运行时动态创建一个基于类的子类,并将isa指向新创建的动态子类(新创建的类名格式:NSKVONotifying_xxx),同时,会将该属性的setter方法进行重写(imp指…
KVO初探
在观察回调中有一个参数context,建议传入指定的值,它的主要作用是用来区分,特别是在有继承关系的情况,分别添加子类和父类的观察。 它的好处:查找更快速,性能高,不会进行多次判断嵌套。 所以,一定要养成移动观察者的好习惯。 返回 YES 的情况下,类的实例对象接收到 KVC …
Method_Swizzling使用过程中遇到的坑
执行比较早,在main函数之前调用。(具体是可以参考load调用过程应用加载过程初探 (三)的load_images分析中有描述) 针对NSArray访问数组越界的处理,我们需要找准真正的方法归属NSArray -> 类簇 -> NSArrayI。 同时,交换的方法包括obje…
应用加载过程初探 (三)
库分为静态库和动态库。 在链接阶段,会将目标文件.o所引用的库一起打包生成可执行文件、静态链接。 如:我们常用UIKit就是动态库。 应用启动后,会交给动态链接器dyld去做下面的工作。 第一步通过prepare_load_methods加载我们所有的load的方法,包括类和分…
Objective-C类和方法底层初探 (二)
由类初始化出来的对象就是实例对象。 通过元类实例化出来的对象就是类对象。 类对象所属的类,系统自动实现。 元类的归属是根元类。 是一个联合体,为了节省内存消耗。 数据共享一块内存。 是存在我们的类里。 执行 class_data_bits_t 结构体中的 data() 方法会返…
Objective-C对象底层初探 (一)
结果是一致的,我们接下来分析一下alloc&init内部的实现过程。
YYModel原理分析
YYModel 是进行键值编码,做字典转模型的事情。 YYModel之所以性能高,是由于做了一些类型系统级别的缓存处理,如果我们对象类做过字典转模型的处理后,他就会缓存到通过 CFMutableDictionaryRef创建一个字典中。再次使用就会直接从cache中拿出来,通过…
KVC浅析
KVC是一种通过键值编码的方式间接访问对象属性的机制,可以通过字符串访问对应的属性方法或成员变量。 比如:我们经常使用的字典赋值就是依赖于KVC。 成员变量通常是指那些基础类型或常量。 是一种特殊的成员变量,我们通过Class类进行实例化出来的变量就是实例变量。 苹果早期的编译…
Runloop底层原理
从字面的意思来看Runloop是运行循环,而它也是一个对象,可以提供一个入口函数,程序就会进入一个do...while循环,保证我们当前应用不被退出。 Runloop其实就是一种消息机制处理模式,比如,我点击一下屏幕、调用一个Timer、或执行performSeletor一个方…
iOS进阶之消息转发(五)
更多文章请点击下方:iOS进阶之Runtime初探(一)iOS进阶之对象与方法的本质(二)iOS进阶之方法查找(三)iOS进阶之动态方法解析(四)源码分析动态方法解析没有找到,会进入接下来消息转发过程
下一页
个人成就
文章被点赞
1
文章被阅读
6,490
掘力值
204
关注了
11
关注者
1
收藏集
1
关注标签
21
加入于
2019-02-20