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

你可能感兴趣的:(iOS KVO)