objective-c - NSNotification VS KVO

标签 objective-c swift cocoa nsnotificationcenter key-value-observing

我觉得我没有完全理解 KVO 和 NSNotification 之间的区别...它们看起来很相似... 您能否举例说明何时最好使用一种方法以及何时使用另一种方法?

我不会谈论 Bind 和 IB,但我的意思是使用 NSNotificationCenter 或 KVO 在我的代码中以编程方式添加 Observer

[self.preferenceController addObserver:self 
                                    forKeyPath:@"color" 
                                       options:NSKeyValueObservingOptionOld 
                                       context:@"Color-change"
];

最佳答案

KVO 仅适用于值,NSNotification 可用于值更改,但它可以用于任何事情并且可以承载更大的负载。

例如,您可以在文件下载完成时发布一个 NSNotification,并且 userInfo 可以包含下载的时间长度、下载的字节数以及文件保存到的文件系统路径。

关于objective-c - NSNotification VS KVO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6707819/

相关文章:

iPhone UILabel 文字软阴影

ios - 单击它时更改 UITableViewCell 中按钮的图像。

iOS swift : autoresize collection view nested inside a table view cell

objective-c - cocoa 播放 mp3

iphone - 如何播放/打开嵌入 PDF 的视频文件?

ios - 如何可靠地检测到 iOS 设备已重启?

objective-c - 如何在 iOS 中使用 NSDateFormatter 获取星期几并使用 NSLog 显示?

objective-c - 使用二进制图像数据更新 CakePHP Web 服务

ios - Swift 自定义键盘 - 在键盘长按时显示额外的字母弹出窗口?

ios - 如何在 UI 子类中隐藏 Storyboard 和 Nib 特定的初始化器