(十三)addObserver:forKeyPath:options:context:各个参数的作用分别是什么;以及调用

前言

是的颓废了很久之后,我又回来了

是什么

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;

你可能感兴趣的:((十三)addObserver:forKeyPath:options:context:各个参数的作用分别是什么;以及调用)