2012-04-06 9 views
5

私は、シリアライザブルを実装するオブジェクトを持って、私はそのオブジェクトのいくつかの辞書を持っています。私がコンパイルして実行すると、キーの値を置き換えるという警告が表示されます。これは、辞書内の次のオブジェクトをシリアライズするときに、以前のオブジェクトと同じキーを持つ変数を格納するためです。 どうすればこの問題を解決できますか?その名前で変数が格納されているかどうかをencodeWithCoderメソッドで知る方法はありますか?どのようにNSKeyedArchiverを解決する警告:既存の値を置き換えます

+0

コードなしで応答することは難しいと考えてください。 – zaph

答えて

16

encodeWithCoder:は、同じキーまたは複数のオブジェクトに表示される同じキーを持つ複数の辞書では問題ありません。あなたの問題は、同じオブジェクト(つまり、encodeObject:forKey:への呼び出し)に同じキーで複数のものをエンコードしている可能性が高くなります。

+0

あなたの答えをありがとう。オブジェクトの同じインスタンスを意味しますか?同じ'encodeWithCoder: 'メソッドで同じキーを2回使用して'encodeObject:forKey:'を呼び出した場合はどうですか? – XaitormanX

+1

はい、またはスーパークラスにあります。 –

+0

よろしくお願いいたします。もう一度メソッドを改訂します – XaitormanX

関連する問題