KVO
- Key-value observing的缩写
- KVO是Object-C 对观察者设计模式的又一实现。
- Apple使用了isa混写(isa-swizzling)来实现KVO的。
通过setValueForKey: 是否能够使KVO生效?
可以,会调用对应的setter方法。
直接赋值方式呢 不能,
注意事项
- 不想让外部监听我的成员属性怎么做呢?
实现类方法automaticallyNotifiesObserversForKey 方法关闭对应属性的自动通知,通过判断对应key值,返回No.
如果需要继续监听,需要手动添加。willChangeValueForKey:
didChangeValueForKey:
- 多次添加同一个属性会发生什么?
会发生崩溃,在IOS11之前。 - 多次移除同一个属性呢?
会发生崩溃,在IOS11之前。