私の最初の関数では、NSMutableDictionary を作成し、それを配列に保存します。
NSMutableArray* tempPlayersArray = [NSMutableArray arrayWithArray: [[NSUserDefaults standardUserDefaults] arrayForKey: @"kgpsTempArray"]];
NSMutableDictionary *tempPlayerDictArray = [[NSMutableDictionary alloc] init];
if (!(userDeviceName)) {
[tempPlayerDictArray setValue:userDeviceName forKey:@"DeviceName"];
}else{
[tempPlayerDictArray setValue:@"empty" forKey:@"DeviceName"];
}
[tempPlayersArray addObject:tempPlayerDictArray];
[defaults setObject:tempPlayersArray forKey:@"kgpsTempArray"];
[defaults synchronize];
私の 2 番目の関数では、NSCFDictionary として取得します。これは可変ではありません。
NSMutableArray* tempPlayersArray = [NSMutableArray arrayWithArray: [[NSUserDefaults standardUserDefaults] arrayForKey: @"kgpsTempArray"]];
NSMutableDictionary *dictionaryForSearching = [[NSMutableDictionary alloc] init];
NSLog(@"%@",[dictionaryForSearching class]);
dictionaryForSearching = [tempPlayersArray objectAtIndex:index];
NSLog(@"%@",[[tempPlayersArray objectAtIndex:index] class]);
NSLog(@"%@",[dictionaryForSearching class]);
最初のログには「NSDictionaryM」が表示されます。
2 番目のログには「NSCFDictionary」が表示されます。
そして3番目は「NSCFDictionary」も示しています...
誰かが私に理由を説明できますか? そして、それを修正する方法は?