iOS KVO

要了解通知、KVO、代理的区别,合理利用。

[A]KVO是什么

KVO 是 Objective-C 对观察者设计模式的一种实现。

KVO提供一种机制,指定一个被观察对象(例如A类),当对象某个属性(例如A中的字符串name)发生更改时,对象会获得通知,并作出相应处理;【且不需要给被观察的对象添加任何额外代码,就能使用KVO机制】

[B]用法

KVO实现前提:观察对象的属性执行了setter方法、或者使用了KVC赋值

1.注册观察者,实施监听;

2.在回调方法中处理属性发生的变化;

3.移除观察者;

1.- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(nullable void *)context;采用[object addObserve:....]注册监听。

2.- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void *)context实现该方法,当监听属性变化时,会调用该方法。

3.- (void)removeObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath context:(nullable void *)context NS_AVAILABLE(10_7, 5_0);该方法用于移除观察者。

本文参考自:http://www.jianshu.com/p/e59bb8f59302

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容