- (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 =>あなたの友達!:TIME=>2012年4月30日12:52:02AM
そして2番目のログの返信は
MSG=>こんにちは...お元気ですか
NSMutableDictionary内に入った後の「msg」がnullになる理由がわかりませんでしたか?結局のところ、パラメータ「from」も正常に表示されています。そして興味深いのは、完全に表示されているmsgパラメーターをログに記録することです。
ARC対応プロジェクトを使用していますが、このnullの問題が発生しています。NSMutableDictionaryは何度も呼び出され、新しいNSMutableDictionaryが作成され、NSArrayに格納されてさらに使用されるため、このメソッドの外でNSMutableDictionaryを宣言したくありません。