kvc
-
kvc是什么:键值编码
-
kvc的使用场景:
-
1.字典转模型
-
2.当我们想替换系统的属性时候,比如系统的tabbar是只读属性不可改变,我们可以自定一个 tabbar去替换tabbar
-
-
kvc是怎么实现的:
-
1.首先通过方法名找到运行时需要的参数
-
2.通过isa指针结合参数,找到方法名对应的接口
-
3.再直接查找得来的具体的方法实现
-
kvo
-
kvo是什么:键值监听
-
kvo的使用场景 :当一个对象的属性发生改变的时候调用addobserverforkey:方法,实现属性被改变后的事件
-
kvo是怎么实现的:
-
1.比如A类的属性第一次被观察的时候,系统会自动生成一个A类的中间类B类。
-
2.在B类中重写A类的setter方法,在B类中通过重写setter方法实现通知机制
-
3.B类会重写class方法,系统会把A类的isa指针指向B类
-