KVO原理

作者: 魔君001 | 来源:发表于2020-09-13 15:35 被阅读0次

KVO是键值观察机制

当我们给一个属性添加kvo时,假设这个属性是A,这时会动态创建一个新的子类NSKVONotifying_A,重写了setter方法(class方法,dealloc方法),并且指向A的isa指针这时会指向NSKVONotifying_A

(注:重写class方法的愿意是为了隐藏对象真实类信息)

重写监听属性的setter方法,在setter方法内部会调用Foundation的_NSSetObjectValueAndNotify函数

_NSSetObjectValueAndNotify函数内部调用流程

1 首先会调用willChangeValueForKey
2 然后给监听属性赋值
3 最后调用didChangeValueForKey
4 最后调用 observer 的 observeValueForKeyPath去告诉监听器属性值发生了改变

参考地址:https://www.jianshu.com/p/0aa83ac521ba

相关文章

网友评论

      本文标题:KVO原理

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