iOS - KVO

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

KVO的全称是key-value obsering 俗称"键值监听",可以用于监听某个对象属性值的改变

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)