我收到了通知,所以我就这样处理了
-(void) dateSelected:(NSNotification *) notification
{
NSLog(@"Value: %@", [[notification userInfo] valueForKey:@"date"] );
NSMutableDictionary * dateDict = [[NSDictionary alloc] initWithDictionary:[notification userInfo]];
NSLog(@"The Date Dict: %@", dateDict );
}
我得到的日志是
2012-07-20 11:32: TestApp[10701:40b] Value: (null)
2012-07-20 11:32: TestApp[10428:40b] The Date Dict: {
}
如果我NS注销通知本身,它看起来有效:
2012-07-20 11:33: TestApp[10457:40b] Notification: NSConcreteNotification 0x16629460 {name = date_selected_; object = {
date = 20120705;
}}
我之前已经完成了这项工作。
我确信这很简单,但今天我看不出这个问题。
任何帮助都将不胜感激。
谢谢, -code
答案 0 :(得分:2)
这很简单,看看你的日志输出......你的通知中没有设置 userInfo 。只有名称和对象。比较你的输出...
NSNotification *notification = [NSNotification notificationWithName:@"NAME"
object:self
userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"obj", @"key", nil]];
NSLog( @"NOT: %@", notification );
...
NOT: NSConcreteNotification 0x73586f0 {name = NAME;
object = <CMAppDelegate: 0x884a4e0>; userInfo = {
key = obj;
}}
......看到差异?在日志输出中有名称,对象,还有 userInfo 。
所以答案是 - 您的通知不包含 userInfo 字典。查看触发此通知的代码。