iOS_KVO实现原理

KVO简而言之就是:

1、当一个object有观察者时,动态(利用runtime机制)创建这个object的类的子类

2、对于每个被观察的property,重写其set方法

3、在重写的set方法中调用- willChangeValueForKey:和- didChangeValueForKey:通知观察者

4、当一个property没有观察者时,删除重写的方法

5、当没有observer观察任何一个property时,删除动态创建的子类

你可能感兴趣的:(iOS_KVO实现原理)