(十三)addObserver:forKeyPath:optio
2017-07-14 本文已影响56人
叔叔不吃棒棒糖
前言
是的颓废了很久之后,我又回来了
是什么
addObserver:forKeyPath:options:context:各个参数的作用分别是什么
[object addObserver: observer forKeyPath: @"frame" options: 0 context: nil];
- object: 被观察者
- observer: 观察者
- options: 有四个值
1、NSKeyValueObservingOptionNew 把更改之前的值提供给处理方法
2、NSKeyValueObservingOptionOld 把更改之后的值提供给处理方法
3、NSKeyValueObservingOptionInitial 把初始化的值提供给处理方法,一旦注 册,立马就会调用一次。通常它会带有新值,而不会带有旧值。
4、NSKeyValueObservingOptionPrior 分2次调用。在值改变之前和值改变之后。 - context:上下文,可以带一些参数,任何类型都可以
怎么用
// 所有的 kvo 监听到事件,都会调用此方法
/*
1. 观察的属性
2. 观察的对象
3. change 属性变化字典(新/旧)
4. 上下文,与监听的时候传递的一致
*/
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context;