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