0

エンコードする必要のあるカスタムオブジェクトクラスがあります。コーディングプロトコルを実装し、クラス内のNSMutableDictionaryオブジェクト以外のすべてのオブジェクトをエンコードすることができました。それをエンコードしようとすると、このエラーが発生します

 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Only support RGBA or the White color space, this method is a hack.'

現在、この辞書クラスには、私が設定したさまざまなカスタムオブジェクトが含まれています。オンラインで検索すると、これが見つかります

NSKeyedArchiverを使用して[UIColorcolorWithPatternImage:image]UIColorをコアデータに保存する

しかし、私の状況には実際には当てはまりません。カスタムクラスの1つは、RGB値から16進文字列を作成するカスタムカラークラスです。これをエンコードして追加し、エンコードプロトコルを追加した後、カラーオブジェクトの保存をテストしました。正常に動作します。しかし、辞書をエンコードしようとすると、同じエラーが発生します。そのディクショナリに含まれるすべてのカスタムオブジェクトを調べて、それぞれにエンコーディングプロトコルを追加する必要がありますか?私はかなりの数のカスタムオブジェクトを持っているので、これはかなり時間のかかる作業になります。また、辞書をアーカイブしようとするとカラーエラーが発生する理由がわかりません。

カスタムオブジェクトを保存するためのより良い方法はありますか?エンコーディング方法は、カスタムオブジェクトを保存するのにかなり面倒な方法だと思います。これを達成するためのより良いまたはより速い方法はありますか?

前もって感謝します

4

1 に答える 1

0

そのディクショナリに含まれるすべてのカスタムオブジェクトを調べて、それぞれにエンコーディングプロトコルを追加する必要がありますか?

間違いなくそうです!

于 2012-12-05T15:15:10.300 に答える