>  Q&A  >  본문

ios - 在看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.

这个要怎么理解?

阿神阿神2765일 전383

모든 응답(2)나는 대답할 것이다

  • 大家讲道理

    大家讲道理2017-04-17 14:31:56

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

    单独写的好处有:

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

    BLABLA

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

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-17 14:31:56

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

    회신하다
    0
  • 취소회신하다