0
- (void) msg:(NSString *)msg from:(NSString *)from
{
     NSMutableDictionary *m = [[NSMutableDictionary alloc] init];
     [m setObject:msg forKey:@"msg"];
     [m setObject:from forKey:@"sender"];
     [m setObject:[NSString getCurrentTime] forKey:@"time"];


NSLog(@"MSG=>%@ : FROM=>%@ : TIME=>%@",[m objectForKey:msg], [m objectForKey:@"sender"], [m objectForKey:@"time"]);

NSLog(@"MSG=>%@",msg);

}

第一个日志的回复是

MSG=>(null) : FROM=>你的朋友!: 时间=>2012 年 4 月 30 日 12:52:02 AM

第二个日志的回复是

味精=>你好……你好吗

我不明白为什么进入 NSMutableDictionary 后的“msg”变为空?毕竟参数“from”也显示正常。有趣的是记录 msg 参数直接完美显示。

我正在使用启用 ARC 的项目并遇到此空问题。我不想在此方法之外声明 NSMutableDictionary,因为它会被多次调用,并且每次创建新的 NSMutableDictionary 并将其存储在 NSArray 中以供进一步使用。

4

1 回答 1

3
[m objectForKey:msg]

是错误的,你试图用它自己作为键来取回对象。正确:

[m objectForKey:@"msg"]
于 2012-04-29T20:18:00.360 回答