我认为kvo的实现是这样子的.在添加kvo观察的时候,系统基于runtime重新动态生成了一个子类,将原有类的class的isa指针改成子类的isa,在调类的对象方法的时候是基于isa查找的,就会查找到子类里的方法,子类重写setter方法,如此实现不修改原类动态观察
这个对象重写了这个方法, 那么就会直接取当前的实现, 也就是带有willChangeValueForKey:以及didChangeValueForKey:, 那么自然就实现了对KVO的实现了。.
谈谈kvo的实现
最新推荐文章于 2021-04-18 15:12:53 发布