一尘不染

NSNotification VS KVO

swift

我觉得我不完全了解KVO和NSNotification之间的区别…它们似乎是如此相似…您能否举一些例子说明何时最佳使用一种方法,何时使用另一种方法?

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

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

阅读 300

收藏
2020-07-07

共1个答案

一尘不染

KVO仅适用于值,NSNotification可以用于值更改,但可以用于任何内容,并且可以承载更大的有效负载。

例如,只要文件下载完成,您就可以发布NSNotification,并且userInfo可以包含花费的时间长度,下载的字节数以及文件已保存到的文件系统路径。

2020-07-07