美文网首页
KVO是什么? 内部是怎么实现的?

KVO是什么? 内部是怎么实现的?

作者: 5c7a7cf606fc | 来源:发表于2016-04-13 22:25 被阅读162次

    kvo,全称Key-Value Observing,它提供了一种方法,当对象某个属性发生改变时,允许监听该属性值变化的对象可以接受到通知,然后通过kvo的方法响应一些操作。 kvo是如何实现通知对象的呢,其实这是通过Objective-C强大的runtime运行时机制实现的。当你第一次观察某个对象时,runtime会创建一个新的继承被监听类的子类。在这个新的类中,它会重写所有被观察的key,然后将对象的isa指针指向新创建的类。所以对象神奇的变成了新的子类的实例。这些被重写的方法中添加了调用通知观察者的方法的代码。当一个对象的一个属性改变时,会触发setKey方法,但这个方法被重写了,并且在内部添加了发送通知机制。

    相关文章

      网友评论

          本文标题:KVO是什么? 内部是怎么实现的?

          本文链接:https://www.haomeiwen.com/subject/zfkglttx.html