【问题标题】:Objective-c KVO: object vs changeDictionaryObjective-c KVO:object vs changeDictionary
【发布时间】:2012-01-26 22:27:57
【问题描述】:

我在 iOS 应用程序中使用 KVO 在对象的属性发生更改时通知 viewController。当我添加观察者时,我指定options:NSKeyValueObservingOptionNew

observeValueForKeyPath 中,我可以通过两种方式获取属性的值:从传递给observeValueForKeyPath 的对象中获取。或者来自传递给同一方法的NSDictionary

这两种获取更新属性值的方法是否总是返回相同的结果?

回想一下,我在添加观察者时将NSKeyValueObservingOptionNew 指定为选项。从Apple's docs 看来,指定NSKeyValueObservingOptionInitial 可能会产生差异。

【问题讨论】:

    标签: ios properties options key-value-observing


    【解决方案1】:

    在常见的情况下,是的,这些对象应该是相同的,尽管可以设计一个它们不是的场景(即,在每次调用时生成新值的自定义 getter,或类似的东西。 ) NSKeyValueObservingOptionInitial 不会对该字典的内容产生任何影响,它只是确定是否立即通知观察者,还是在添加观察者后等待第一个值更改。如果您需要观察者中的某些状态被“启动”,这将非常有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-28
      • 1970-01-01
      相关资源
      最近更新 更多