2011-08-15 48 views
0

我送使用的通知:NSNotification是否可以在任何地方使用?

[[NSNotificationCenter defaultCenter] postNotificationName:@"historyLoaded" object:jsonReturn]; 

而接收到該通知使用:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(manageHistory:) name:@"historyLoaded" object:nil]; 

然後在選擇器中的方法是:

- (void) manageHistory: (NSNotification *) historyData{ 
    NSLog(@"this bit of code was run"); 
} 

對於一些reaason通知沒有通過。可以在應用程序的任何位置發送和接收通知嗎?

回答

1

postNotification中的object參數應填寫「發送」通知的對象,或者如果發送者未必指定,則填充nil。
如果你想傳遞一些信息,你應該使用postNotificationName:object:userInfo,並把信息放在userInfo字典中。

0
[[NSNotificationCenter defaultCenter] addObserver:self 
     selector:@selector(manageHistory) name:@"historyLoaded" object:nil]; 

[[NSNotificationCenter defaultCenter] postNotificationName:@"historyLoaded" 
     object:nil userInfo:jsonReturn]; 

- (void) manageHistory: (NSNotification *) historyData{ 
     NSDictionary* _dict = historyData.userInfo; 
     NSLog(@"Your information embedded to dictiuonary obj %@",_dict); 
} 

注意:請確保您的historyData應該是一個字典對象postNotificationName

+0

我有上面寫的應該爲你工作的代碼。 –

相關問題