美文网首页
FBKVOController初学附DEMO

FBKVOController初学附DEMO

作者: 一铭_ | 来源:发表于2015-11-29 10:31 被阅读2082次

    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 机制的理解.

    相关文章

      网友评论

          本文标题:FBKVOController初学附DEMO

          本文链接:https://www.haomeiwen.com/subject/txxjhttx.html