iOS - KVO

作者: leesen | 来源:发表于2020-04-24 16:33 被阅读0次

ios用什么方式实现一个对象的kvo?(kvo的本质是什么?)

1.利用runtime的动态生成一个子类,并且让实例对象的isa指向全新的子类

2.当修改实例对象的属性时,会调用Foundation的NSSet***ValueAndNotify函数,函数内部调用willChangeValueForKey,然后调用父类原来的setter方法,.然后调用didChangeValueForKey方法.didChangeValueForKey内部触发监听器的observeValueForKeyPath方法

如何手动触发KVO?

手动调用下面两个方法

[self.p1 willChangeValueForKey:@"age"];[self.p1 didChangeValueForKey:@"age"];

参考:OC底层学习笔记(3)-KVO的实现 - 简书

相关文章

网友评论

      本文标题:iOS - KVO

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