NSNotification VS KVO

时间:2011-07-15 13:36:26

标签: 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"
];

1 个答案:

答案 0 :(得分:6)

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

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