KVOController的使用

KVOController 是一个简单安全的 KVO(Key-value Observing,键-值 观察)工具,用于 iOS 和 OS X 应用开发中,开源自 facebook。

KVO 是一个在 MVC(Model-View-Controller)应用程序开发中,用于不同模块间交流的一个很有用的技术。 KVOController 是基于 Cocoa 久经考验的 Key-value Observing 实现(implementation)开发而成的。它提供了一个简单现代的 API,同时也是线程安全的。它有如下优点:

1.不需要手动移除观察者;框架自动帮我们移除观察者

2.使用 block 来替代方法能够减少使用的复杂度,提升使用 KVO 的体验;block或者selector的方式,方便使用

3.每一个 keyPath 会对应一个属性,不需要在 block 中使用 if 判断 keyPath;一个keyPath对应一个SEL或者block,不需要统一的observeValueForKeyPath方法里写if判断


KVOControlle的实现只需要一个方法

方法1:检测单个属性的变化

方法2:检测多个属性变化

fbKVO = [FBKVOController controllerWithObserver:self];

KVOController的使用_第1张图片

一:kvo值检测类型;

1:NSKeyValueObservingOptionNew 传递变化之后的值;

2:NSKeyValueObservingOptionOld 传递变化之前的值;

3:NSKeyValueObservingOptionInitial 观察者会在程序初始时,也就是观察变化之前,优化执行一次 观察动作;即上述执行上面 block操作一次;并且传递 默认的值,和以后传递 变化后的值;

4:NSKeyValueObservingOptionPrior 会调用两次观察者操作,值改变之前,值改变之后;

二:获取

kvo的值;

change[NSKeyValueChangeNewKey]   新值;

change[NSKeyValueChangeOldKey]    旧值;

change[FBKVONotificationKeyPathKey]  改变的属性;

*/

你可能感兴趣的:(KVOController的使用)