0

次のコードがあります。

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSMutableDictionary *golferIconsu = [userDefaults objectForKey:@"golferIconsFirstScene"];

NSMutableDictionary *golferIconsSceneOne = [[NSMutableDictionary alloc]initWithDictionary:golferIconsu];

NSMutableDictionary *savedScoreCards;

NSMutableDictionary *currentScoreCard;
[currentScoreCard setObject:golferIconsSceneOne forKey:@"golferIconsFirstScene"];

NSMutableDictionary *GI = [currentScoreCard objectForKey:@"golferIconsFirstScene"];

[savedScoreCards setObject:currentScoreCard forKey:@"1"];

NSLog([golferIconsSceneOne objectForKey:@"30101"]);
NSLog([GI objectForKey:@"30101"]);

最後に、ログに出力されるのは最初のNSLog呼び出しであり、2 番目の呼び出しではありません。例えば:

NSLog([golferIconsSceneOne objectForKey:@"30101"]);

これにより、その辞書に保存した文字列が出力されます。

これです:

NSLog([GI objectForKey:@"30101"]);

何も印刷しません。

NSDictionaryGI に とまったく同じプロパティを持たせるにはどうすればよいgolferIconsSceneOneですか?currentScoreCardDictionarygolferIconsSceneOne

4

2 に答える 2

2

オブジェクトを設定する前に辞書を初期化します。

NSMutableDictionary *savedScoreCards = [[NSMutableDictionary alloc] init];
NSMutableDictionary *currentScoreCard = [[NSMutableDictionary alloc] init];
于 2012-05-17T11:20:38.637 に答える
1

このように1つを初期化し、他に設定します

NSMutableDictionary *savedScoreCards = [[NSMutableDictionary alloc] init];
NSMutableDictionary *currentScoreCard = [[NSMutableDictionary dictionaryWithDictionary:savedScoreCards];
于 2012-05-17T13:30:34.573 に答える