我在 iOS 应用程序中使用 KVO 在对象的属性更改时通知 viewController。当我添加观察者时,我指定了 options:NSKeyValueObservingOptionNew
。
在 observeValueForKeyPath
中,我可以通过两种方式获取属性的值:从传递给 observeValueForKeyPath
的对象。或者来自传递给相同方法的 NSDictionary
。
这两种获取更新属性值的方法是否总是返回相同的结果?
回想一下,我在添加观察者时将 NSKeyValueObservingOptionNew
指定为选项。来自 Apple's docs听起来指定 NSKeyValueObservingOptionInitial
可能会产生差异。
最佳答案
在通常情况下,是的,这些对象应该是相同的,尽管可以设计出它们不相同的场景(即在每次调用时生成新值的自定义 getter,或类似的东西。 ) NSKeyValueObservingOptionInitial
不会对该字典的内容有任何影响,它只是决定是否立即通知观察者,还是在添加观察者后等待第一个值更改。如果您需要观察者中的某些状态被“准备好”,这将很有用。
关于ios - objective-c KVO : object vs changeDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9026391/