2010-08-11 81 views
0

有什麼用NS通知在iphone sdk?NS通知iphone sdk

感謝

+0

可能[什麼是NSNotification?](http://stackoverflow.com/questions/1900352/what-is-nsnotification) – 2010-09-19 22:35:27

回答

3

我知道這不是一般的回答問題的好辦法,但RTFM

NSNotification對象封裝信息,以便它可以通過NSNotificationCenter對象廣播到其他對象。 NSNotification對象(稱爲通知)包含名稱,對象和可選字典。該名稱是標識通知的標籤。該對象是通知的發佈者想要發送給該通知的觀察者的任何對象(通常是發佈通知的對象)。該字典存儲其他相關對象,如果有的話。 NSNotification對象是不可變的對象。

您可以使用類方法notificationWithName:object:或notificationWithName:object:userInfo:創建通知對象。但是,您通常不會直接創建自己的通知。 NSNotificationCenter方法postNotificationName:object:和postNotificationName:object:userInfo:允許您方便地發佈通知,而無需先創建它。

0

在事件方面NSNotifications是委託的替代方案。可以使用委託來通知一個事件的單個代表,而通知可用於通知任意數量的接收器。通知被髮送到主通知中心,然後通知所有已註冊通知的對象。

一個重要的區別是,使用委託您可以接收委託人對事件的響應,而使用NSNotifications您只需發送通知,但您不知道接收者或他們對通知的響應。

0

當您想從iOS接收警報時,您註冊了一個UINotification。因此,如果您想在插入配件或插入電視機時執行某些操作,則會爲其註冊一個UINotification,並在事件發生時調用應用程序中的方法。

1

NSNotifications允許您在事件發生時調用一個方法。 例如,如果你有一個MPMoviePlayer,你想待辦事項的東西,當它完成後,你可以使用下面的代碼:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:yourMoviePlayer.moviePlayer];

或者,如果你想要做的事,當設備旋轉:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:self];