本文介绍: iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?)1.当属性第一次被观察时,系统利用RuntimAPI动态生成一个派生类(该类的子类),2.重写被观察属性的setter 方法。3.将isa指针指向派生类。……
一、KVO
1、概述
KVO的全称是KeyValueObserving,俗称“键值监听“,可以用于监听某个对象属性值的改变;
KVO是苹果提供的在套事件通知机制。KVO和NSNotificationCenter都是iOS中观察者模式的一种实现,区别是:NSNotificationCenter可以是一对多的关系,而KVO是一对一的;
2、KVO的使用
2、KVO的原理
iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?)
当修改instance对象的属性时,会调用派生类的NSSet*ValueAndNotify函数,这个函数实现是:
willChangeValueForKey
[super setAge:age];
didChangeValueForKey
触发Observe的监听方法observeValueForKeyPath:
2、手动触发KVO
手动调用 willChangeValueForKey: 和 didChangeValueForKey: 即可触发KVO
二、KVC
1、KVC赋值过程:setValue:(id)value forKey:
2、KVC取值过程:valueForKey
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。