ここを参照して単純な例を作ってみました。ほとんどそのままです。
NSMutableDictionaryはNSUserDefaultsで保存するとimmutableになってしまうので、取り出すときmutableCopyを使ってmutalbeに戻してやればいいようです。
// 辞書を適当に作る
NSMutableDictionary *mDict1 = [@{@"key1":@1, @"key2":@2} mutableCopy];
// 保存
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:mDict1 forKey:@"Dic"];
// 読み込みんでmutableにする
NSDictionary *dict = [defaults objectForKey:@"Dic"];
NSMutableDictionary *mDict2 = [dict mutableCopy];
// 値を足してみる
mDict2[@"key3"] = @3;
mDict2[@"key4"] = @4;
for (NSString *key in [mDict2 allKeys]) {
NSLog(@"key:%@, value:%@", key, [mDict2 objectForKey:key]);
}
コメント