ios - objective-c KVO : object vs changeDictionary

标签 ios properties key-value-observing

我在 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/

相关文章:

swift - 为什么我的 iCloud KVS Observer 不工作

ios - HTTPS 嗅探/Charles SSL 在 Facebook 上不起作用

ios - 发生未指定的错误。无法为应用商店创建新的配置文件

java - 通过从另一个文件逐行读取来加载属性文件

python-3.x - 运行 tmp() 的结果是什么以及为什么?

core-data - NSSortDescriptor 按核心数据对多关系中的项目数进行排序

ios - UITapGestureRecognizer 导致崩溃并显示不同的错误消息

ios - 如何使用 Swift 将多张图片上传到服务器?

xcode - 从变量获取多个属性

objective-c - Swift 4/Objective-C 中是否需要删除观察者?