[英]What is parameter `object` in NSNotification addObserver:?
我的一個名為Message.m的類正在發送一個帶有sentObject
對象的通知,如下所示
NSDictionary *sentObject = [NSDictionary dictionaryWithObjectsAndKeys:draftData.arr,@"data", nil];
//Post notification to inform a receiver to reload data
[[NSNotificationCenter defaultCenter] postNotificationName:@"reloadDuringSave" object:self userInfo:sentObject];
DraftData.m將成為捕獲通知的接收者,如下所示
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(dataReloaded:)
name:@"reloadDuringSave"
object:nil];
對於發布通知, userInfo
可以是nil
或者可以是object
(在此示例中類似於sentObject
作為NSDictionary
類型)。
addObserver
方法中object
其他參數是什么? 它們可以是除了nil
以外的任何東西嗎?如果是的話,它是什么?
“ addObserver ”的“object”參數是可選的過濾器。 您可以將其設置為通知的發件人,然后只會通知該發件人的事件。 如果設置為“nil”,您將收到此類型的所有通知(無論是誰發送的)。
您可以使用它通過通知傳遞任何對象。 然后,通知的接收者將能夠訪問該對象。 例如,您可以像這樣實現dataReloaded
:
- (void)dataReloaded:(NSNotification *)notification {
NSLog(@"%@", notification.object); // this will log the object you passed in addObserver:selector:name:object:
}
當您希望通過通知傳遞數據時,它可能很有用,這樣通知的接收者也可以使用該數據。
對於任何對蘋果文檔感興趣的人。 這就是它所說的:
notificationSender
觀察者想要接收其通知的對象; 也就是說,只有此發件人發送的通知才會傳遞給觀察者。 如果您傳遞nil,通知中心不會使用通知的發件人來決定是否將其傳遞給觀察者。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.