1. runTime
方法 class_copyPropertyList
- 获取类属性列表使用
class_copyPropertyList()
方法
-
C语言函数,copy之后需要free()
-
使用字典转模型
-
获得self的属性列表,遍历字典,如果key 值在数组中,进行KVC赋值,
-
cz_objectProperties方法会调用很多变,需要进行关联缓存处理
-
从关联对象中获取对象属性,如果有,直接返回
-
获取之后的数组,
objc_setAssociatedObject
添加关联对象
2.方法交换
-
load
方法中交换, 在类被加载到运行时的时候,就会被执行 -
method_exchangeImplementations() 执行之后,交换2个方法
-
调用setImage:相当于调用cz_setImage:
-
调用cz_setImage:相当于调用setImage: