2014-11-06 66 views

回答

6

KVO專門用於更改properties

NSNotificationCenter可用於各種通知的更廣泛的上下文中,而不僅僅是那些處理屬性值更改的通知。另外,您可以創建自己的通知,將其發送給以前以觀察者身份訂閱此通知的任何其他感興趣對象。

要創建自定義通知使用:然後 [[NSNotificationCenter defaultCenter] postNotificationName:@"somethingHappened" object:nil];

另一類可以訂閱該通知與此代碼: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(somethingHappenedSomewhere:) name:@"somethingHappened" object:nil];

每當方法somethingHappenedSomewhere:將與NSNotification作爲參數來調用。

+0

要擴大這個答案... NSNotifications也可以跨應用程序發送。我喜歡將通知視爲在某些對象可能或不可能監聽更改的情況下非常有用,但播放該更改非常重要。 – harrisg 2014-11-06 14:47:04

+0

好吧,那不是真的嗎?這將如何工作?應用程序A發送通知,應用程序B在後臺收到通知,然後執行自定義操作?這絕對不可能,...也許你在談論'UILocalNotification' ...?!這些又是一個完整的故事。 – nburk 2014-11-06 14:50:52

+2

抱歉不清楚,我指的是OS X上的NSDistributedNotificationCenter,我猜這在iOS上不可用。 – harrisg 2014-11-06 14:53:53

相關問題