iOS KVO

作者: YH的练手记 | 来源:发表于2016-10-17 11:08 被阅读28次

    要了解通知、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

          本文链接:https://www.haomeiwen.com/subject/liiayttx.html