私はこの問題に関するすべての場所を見てきました。私がしようとしているのは、nsuser defaultsオブジェクトを作成し、それに変更可能な配列を追加し、nsuserdefaultsオブジェクトを変更しようとすることです。iphone xcode; mutableCopyはまだ不変ですか?
//Created a sample array
NSMutableArray *xml=[[NSMutableArray alloc] init];
[xml addObject:@"x"];
[xml addObject:@"x"];
[xml addObject:@"x"];
[xml addObject:@"x"];
[xml addObject:@"x"];
//assigned to defaults object which is created previously with a mutableCopy
[defaults setObject:[xml mutableCopy] forKey:@"userLocationsDetailedXML"];
//Tried to modify the defaults object - which at this point should be mutable
[[defaults objectForKey:@"userLocationsDetailedXML" ] replaceObjectAtIndex:1 withObject:@"y"] ;
[defaults synchronize]
を追加することはできません。
しかし、驚くべきことにデフォルトオブジェクトはまだ変更できません。それは__NSCFArrayであり、__NSCFArrayMではありません。 提案はありますか?
編集:コンソール出力 クラス:__NSCFArray =>私は変更可能なコピーを作成したので、NSCFArrayMですか? [ _NSCFArray replaceObjectAtIndex:withObject:]:不変オブジェクトに送られた変異法」
HI sam、それは助けませんでした - それはまだ配列が不変であるというエラーを投げます。しかし、woul'dnt [xml mutableCopy]は可変配列を作成しますか?なぜこの場合は不変ですか? – Veeru
ああ、その他の答えに良いもの! NSUserDefaultsを使用してこの特定の問題を処理することはできないようです。 –
これをよりうまく行う方法について、私の答えを編集しました。 –