コアデータにNSMutableArrayのを保存
-
12-09-2019 - |
質問
私は自分のコアデータモデルの私のエンティティの一つにNSStringsのNSMutableArrayのを追加したいです。問題は、これがコアデータでサポートされているタイプではないということです。
私はtranformable属性を作ってみましたが、問題は、私はNSDataのにNSMutableArrayのを回し、再びNSMutableArrayのを、NSDataのから行くのない方法を見ていないということです。この問題を解決することができる方法として、誰もがアイデアを持っていますか?
(私はそれが私のモデルに存在することにしたい、私は配列をアーカイブすることができます知っているが、私はそれを行うにはしたくない)。
解決
あなたは、あなたのモデル化オブジェクト内のバイナリデータの属性を持っているデータに配列をアーカイブし、そしてオブジェクトにそれを引き渡すことができます。
しかし、私は良い方法ではなく、直接、配列を使用しての、対多の関係を持っていることだと思います。
****編集:ここでは、管理対象オブジェクトで使用できるようにNSDataのに配列をアーカイブする方法を説明します***
NSData *arrayData = [NSKeyedArchiver archivedDataWithRootObject:[NSArray arrayWithObjects:@"1",@"2", nil]];
基本的には、NSCodingプロトコルに準拠して、あなたが持っている任意のクラスは、このようにアーカイブすることができます。 NSArrayの/ NSMutableArrayのは、すでにそれに準拠しています。彼らは自分自身をアーカイブするために、そのオブジェクトのすべてを伝えるので、彼らはあまりにも準拠する必要があります。そして、それらのオブジェクトのすべてのメンバーが、それは木のようなものだなど、準拠する必要があります。
あなたの配列が適合しているので、それは、あなたは黄金だ、(も準拠)のNSStringの配列です。