kvo 是提供一种方法,当某一个属性改变,相对应的objects就会被通知,这样就可以作出相应的处理。
那kvo是怎么实现的,kvo实现通过Objective-C强大的运行时(runtime)实现,当第一次观察某一个object时,runtime会创建一个继承原先class的subclass,在其中重写了所有被观察的key的(setter方法),然后将这个object的isa指针指向新的class,这些被重写的setter实现了通知观察者们。
kvo 是提供一种方法,当某一个属性改变,相对应的objects就会被通知,这样就可以作出相应的处理。
那kvo是怎么实现的,kvo实现通过Objective-C强大的运行时(runtime)实现,当第一次观察某一个object时,runtime会创建一个继承原先class的subclass,在其中重写了所有被观察的key的(setter方法),然后将这个object的isa指针指向新的class,这些被重写的setter实现了通知观察者们。