KVO实现原理

来源:互联网 发布:知乎 房地产文案 编辑:程序博客网 时间:2024/05/22 03:39
假设需要被观察类的名字Person
1、当一个对象有观察者时,动态创建这个对象的类 的子类(子类名字:NSKVONotifying_Person
2、对于每个被观察的对象的属性,重写其set方法
3、在重写的set方法中调用- willChangeValueForKey:和- didChangeValueForKey:通知观察者
4、当一个property没有观察者时,删除重写的方法
5、当没有observer观察任何一个property时,删除动态创建的子类
0 0
原创粉丝点击