11 2018 档案

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