自动触发KVO原理
2017-01-02 00:47:33 0 举报
登录查看完整内容
KVO(Key-Value Observing)是一种观察者模式,它允许一个对象观察另一个对象的属性变化。当被观察对象的属性发生变化时,会自动通知观察者对象。在iOS开发中,KVO是最常用的一种机制之一。 自动触发KVO的原理是通过runtime机制实现的。当一个对象被观察时,系统会动态创建一个该对象的子类,并在子类中重写被观察属性的setter方法。在重写的setter方法中,除了调用原来的setter方法之外,还会通知观察者对象属性发生了变化。这样,当被观察对象的属性发生变化时,就会自动触发KVO机制,通知观察者对象。
作者其他创作
大纲/内容
当你观察一个对象的时候,一个新的类会动态创建
继承关系
重写的setter方法会负责在调用原setter方法之前和之后,通知相应的观察者,值的改变
观察
新类
重写setter方法
- (void)setNow:(NSDate *)date{ [self willChangeValueForKey:@\"now\"]; [super setValue:date ForKey:now]; [self didChangeValueForKey:@\"now\"];}
将isa指针指向这个新创建的类,对象就神奇的变成了新创建类的实例
观察者
被监听的类
setter方法
isa指针
0 条评论
回复 删除
下一页