ios用什么方式实现一个对象的kvo?(kvo的本质是什么?)
1.利用runtime的动态生成一个子类,并且让实例对象的isa指向全新的子类
2.当修改实例对象的属性时,会调用Foundation的NSSet***ValueAndNotify函数,函数内部调用willChangeValueForKey,然后调用父类原来的setter方法,.然后调用didChangeValueForKey方法.didChangeValueForKey内部触发监听器的observeValueForKeyPath方法
如何手动触发KVO?
手动调用下面两个方法
[self.p1 willChangeValueForKey:@"age"];[self.p1 didChangeValueForKey:@"age"];
网友评论