FBKVOController初学附DEMO

1.首先附上 FBKVO 地址 https://github.com/facebook/KVOController
2.再附上小弟Demo 地址 https://github.com/sfmDev/DemoForFBKVO

KVOController是FaceBook开源的一个使用KVO的开源库;
好处如下:
1使用 Blocks、自定义 Actions 或者 NSKeyValueObserving 回调进行通知.
2观测者移除时无异常
3控制器 dealloc 时隐式的观测者移除
4提升使用 NSKeyValueObservingInitial 的性能
5线程安全
这也是我从网上找的,还在进一步深究中.

简单的可以参见 demo ,主要说一下使用.

fbKVO = [FBKVOController controllerWithObserver:self];
[fbKVO observe:personOne keyPath:@"pName" options:NSKeyValueObservingOptionNew block:^(id observer, id object, NSDictionary *change) {
lbl.text = change[NSKeyValueChangeNewKey];
}];

先说一下KVO 值检测机制
1 NSKeyValueObservingOptionNew 传递变化之后的值;
2 NSKeyValueObservingOptionOld 传递变化之前的值;
3 NSKeyValueObservingOptionInitial 观察者会在程序初始时,也就是观察变化之前,优化执行一次 观察动作;即上述执行上面 block操作一次;并且传递 默认的值,和以后传递 变化后的值;
4 NSKeyValueObservingOptionPrior 会调用两次观察者操作,值改变之前,值改变之后;

然后不太明白的可能是 change[NSKeyValueChangeNewKey]这里
change[NSKeyValueChangeNewKey] 新值;
change[NSKeyValueChangeOldKey] 旧值;

安装
使用 CocoaPods,添加下列代码到项目 Podfile 文件:
pod 'KVOController'

官方的 demo 可以仔细研究一下,可以加深对 KVO 机制的理解.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • KVO 作为 iOS 中一种强大并且有效的机制,为 iOS 开发者们提供了很多的便利;我们可以使用 KVO 来检测...
    JzRo阅读 956评论 0 2
  • 官方文档点这里:Key-Value Observing Programming Guide、NSKey​Value...
    阿斯兰iOS阅读 559评论 0 1
  • KVO 作为 iOS 中一种强大并且有效的机制,为 iOS 开发者们提供了很多的便利;我们可以使用 KVO 来检测...
    Draveness阅读 6,917评论 11 59
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,853评论 18 139
  • 一、_objc_msgForward函数是做什么的,直接调用它将会发生什么? _objc_msgForward是一...
    一个人一匹马阅读 359评论 0 1