NSNotification到处工作吗?

时间:2011-08-15 10:44:41

标签: iphone ios xcode 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");
}

对于某些原因,通知无法通过。可以从应用程序的任何位置发送和接收通知吗?

2 个答案:

答案 0 :(得分:1)

object中的postNotification参数应填充一个“发送”通知的对象,如果不一定指定发件人则为零。
如果您想传递一些信息,请使用postNotificationName:object:userInfo并将信息放在userInfo字典中。

答案 1 :(得分: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中的字典对象