文章目录
前言
添加新的实例变量的原理:利用category结合runtime的对象关联(associated objects)实现
应用:
- 添加私有属性用于更好地去实现细节
- 添加public属性来增强category的功能
- 创建一个用于KVO的关联观察者。当在一个category的实现中使用KVO时,建议用一个自定义的关联对象而不是该对象本身作观察者。
动态创建属性的具体应用场景:利用属性进行传值的时候,我们就可以利用本文的方法进行动态创建属性。尤其在逆向其他app的时候,往已经存在class新增一个属性,用于数据传递,尤其是异步操作的时候。
其他案例:AFNetworking在 UIImageView 的category上用了关联对象来保持一个operation对象,用于从网络上的某URL异步地获取一张图片。
I 添加新的实例变量
1.1 原理
利用 runtime APIobjc_setAssoc