私のアプリケーションにはトップレベルの配列であるplistを読み込んでいます。配列が変更可能であることを確認するだけで十分ですか?plistから読み込まれたオブジェクトの可変バージョンを作成することは可能ですか?
self.plistData = [[NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"myDataSource" ofType:@"plist"]] mutableCopy];
配列の各要素には、それぞれ辞書が含まれています。
テーブルセルの選択に基づいて、私は、選択したインデックスで辞書の属性を変更しています:
[self.cellDescriptors[indexPath.section][indexOfTappedRow] setValue:@"YES" forKey: @"isSelected"];
私は辞書の値を変更しようとすると、私はエラー'-[__NSCFDictionary removeObjectForKey:]: mutating method sent to immutable object'
を取得しています。このエラーは、plistによって読み込まれたNSDictionaryが不変である場合に意味があります。
plistからコンテンツを読み込む方法はありますか?また、配列や辞書が可変バージョンとして読み込まれていることを確認する方法はありますか?
提供されているコードは不完全です。あなたはどこで使っていますか? - removeObjectForKey? –
辞書/配列を通してどのように反復処理しているかのコードを表示できますか? –
各サブレベルオブジェクトを可変バージョンに変換する "mutableCopy"のビルドはありません。 'mutableCopy'はそれが呼び出される最上位レベルでのみ行います。 – Larme