在看KVO和category的时候看到一段文字,应该怎么样理解?

When using KVO in a category implementation, it is recommended that a custom associated-object be used as an observer, rather than the object observing itself.

这个要怎么理解?

阅读 1.6k
评论 更新于 2015-04-29
    2 个回答

    KVO一般是监听某一个OBJ_A的某个属性变化,若发生预期变化提供回调。
    自己观察自己理论上说是OK的(我没试过。。),因为说白了KVO就是观察某属性的SETTER方法,但是这么写代码可读性可差,大家通过的方法是单独写一个关联对象。

    单独写的好处有:

    • 可读性强,你不要纠结自己观察自己
    • 解耦
    • 便于业务扩展,因为所关联毕竟是你自定义的对象(可以很抽象)

    BLABLA

    KVO这块苹果给的接口太操蛋了,本身想法很好的一个东西设计成。。。KVO要用的话推荐Facebook的KVOController

    评论 赞赏 2015-04-29

      个人感觉是为了保持category的简洁, 写category一般都是比较基础的东西, 但是你加了KVO就嵌入了业务逻辑, 这样就使得这段代码今后被复用的可能性比较低了

      评论 赞赏 2015-04-29
        撰写回答

        登录后参与交流、获取后续更新提醒