sp; 且重写观察属性的setter方法这种继承方式的注入是在运行时而不是编译时实现的
KVO实现步骤
(options通常传- NSkeyValueObservingOptionNew|NSkeyValueObservingOptonOld)
option是KVO里常见的参数
NSkeyValueObservingOption枚举:
NSkeyValueObservingOptionNew:提供更改前的值
NSkeyValueObservingOptionOld:提供更改后的值
NSkeyValueObservingOptionInitial:观察最初的值(在注册观察服务的时候会调用一次触发方法)
NSkeyValueObservingOptionPrior:分别在值修改前后触发方法(即一次修改两次触发 )
注册
(哪个要注册KVO机制 / 观察的属性值 / 给你观察键值变化的选择 /方便传输你需要的数据 )
- addObserver: forKeyPath: options: context
实现(回调)
(观察的属性值/object??? / 存储了一些变化的数据 比如变化前的数据 变化后的数据 如果注册时context不为空 这里就能收到)
- observeva lueForKeyPath: ofObject: change: context:
移除
增加观察与取消观察是成对出现的 所以需要在最后的时候 移除观察者(可以在- dealloc方法了写)
- removeObserver: forKeyPath: