KVO和NSNotificationCenter都可以处理价值变化。他们之间有什么区别?它们的正确用法是什么?
答案 0 :(得分:6)
KVO 专门用于更改properties
。
NSNotificationCenter 可以在更广泛的上下文中用于所有类型的通知,而不仅仅是那些处理属性值更改的通知。另外,您可以创建自己的通知,以发送给以前以观察者身份订阅此通知的任何其他感兴趣的对象。
要创建自定义通知,请使用:
[[NSNotificationCenter defaultCenter] postNotificationName:@"somethingHappened" object:nil];
然后,另一个类可以使用以下代码订阅此通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(somethingHappenedSomewhere:) name:@"somethingHappened" object:nil];
每当使用somethingHappenedSomewhere:
作为参数调用方法NSNotification
时。