【发布时间】:2014-11-06 14:34:51
【问题描述】:
KVO 和 NSNotificationCenter 都可以处理值的变化。他们之间有什么区别?它们的正确用法是什么?
【问题讨论】:
-
我的回答够好吗?你还有未解决的问题吗? :)
标签: ios macos cocoa nsnotificationcenter key-value-observing
KVO 和 NSNotificationCenter 都可以处理值的变化。他们之间有什么区别?它们的正确用法是什么?
【问题讨论】:
标签: ios macos cocoa nsnotificationcenter key-value-observing
KVO专门针对properties的变化。
NSNotificationCenter 可以在更广泛的上下文中用于各种通知,而不仅仅是那些处理属性值更改的通知。另外,您可以创建自己的通知,以发送给以前作为观察者订阅此通知的任何其他感兴趣的对象。
要创建您的自定义通知,请使用:
[[NSNotificationCenter defaultCenter] postNotificationName:@"somethingHappened" object:nil];
然后另一个类可以使用以下代码订阅此通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(somethingHappenedSomewhere:) name:@"somethingHappened" object:nil];
只要方法somethingHappenedSomewhere: 将被调用,NSNotification 作为参数。
【讨论】:
UILocalNotification...?!这些又是另一回事了。