KVO

kvo和runtime有着密不可分的关系

  • 当你第一次观察某个object 时,runtime会创建一个新的继承原先class的subclass。在这个新的class中,它重写了所有被观察的key,然后将object的isa
    指针指向新创建的class(这个指针告诉Objective-C运行时某个object到底是哪种类型的object)。所以object神奇地变成了新的子类的实例。
  • 重写set方法
    当改变一个key时,会触发setKey方法,但这个方法被重写了,并且在内部添加了发送通知机制。例如willChange和changed

你可能感兴趣的:(KVO)