1

空ではなく、モデル クラスの NSMutableDictionary プロパティに少なくとも 1 つのキーと値のペアがある辞書の plist を読み取ると、すべて正常に動作します。変更可能な辞書を追加、削除、変更できます。

しかし、辞書が空の場合

次のようなタグが付いた plist を確認できます。

<dict/>

すると、私のプロパティに NSMutableDictionary ポインタがあっても、作成された Object は不変になります。

特定のプロパティに対してオブジェクトを設定しようとすると、次のエラーが表示されます。

'NSInternalInconsistencyException', reason: '-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'

4

2 に答える 2

2
NSMutableDictionary *mutable = [yourApparentlyMutableDictionary mutableCopy];
于 2012-05-24T09:22:41.357 に答える
1

plist から取得したすべてのオブジェクトが不変のバリアントであることを確認してください。ただし、それらをミュータブルとしてデシリアライズするオプションを見たと思います。

編集:

この記事では、plist を可変としてアーカイブ解除する方法について説明します。

http://cocoadev.com/wiki/PropertyList

于 2012-05-24T09:29:22.207 に答える