11 2018 档案
摘要:如何实现给分类“添加成员变量”? 默认情况下,因为分类底层结构的限制,不能添加成员变量到分类中。但可以通过关联对象来间接实现 关联对象提供了以下API 1> 添加关联对象 void objc_setAssociatedObject(id object, const void * key, id va
阅读全文
摘要:Category原理 - Category编译之后的底层结构是 struct categroy_t,里面存储着分类对象方法、属性、协议信息- 当程序运行时,通过runtime动态的将分类的方法、属性、协议合并到一个大数组中- 底层使用的是二维数组进行存储,比如:[[分类2方法列表],[分类1方法列表
阅读全文
摘要:定义 KVC的全称是Key-Value Coding,俗称“键值编码”,可以通过一个key来访问某个属性 常见的API有: setValue:forKey:的原理 解析:当我们执行 setValue 的时候,要会去判断这个对象有没有 setKey 和 _setKey 这两个方法,按顺序判断,如果有就
阅读全文
摘要:KVO的原理是什么?底层是如何实现的? KVO是Key-value observing的缩写。 KVO是Objective-C是使用观察者设计模式实现的。 Apple使用了isa混写(isa-swizzling)来实现KVO。 我们可以通过代码去探索一下。 创建自定义类:XGPerson 我们的思路
阅读全文

浙公网安备 33010602011771号