21

NSStrings の NSMutableArray をコア データ モデルのエンティティの 1 つに追加したいと考えています。問題は、これが Core Data でサポートされている型ではないことです。

変換可能な属性を作成しようとしましたが、問題は、NSMutableArray を NSData に変換し、NSData から NSMutableArray に戻す方法が見つからないことです。この問題を解決する方法を知っている人はいますか?

(配列をアーカイブできることはわかっていますが、それはしたくありません。モデルに存在させたいのです)。

4

1 に答える 1

33

モデル化されたオブジェクトにバイナリ データ属性を設定し、配列をデータにアーカイブして、それをオブジェクトに渡すことができます。

しかし、配列を直接使用するのではなく、対多の関係を持つ方が良い方法だと思います。

****編集: 管理対象オブジェクトで使用できるように、配列を NSData にアーカイブする方法は次のとおりです***

NSData *arrayData = [NSKeyedArchiver archivedDataWithRootObject:[NSArray arrayWithObjects:@"1",@"2", nil]];

基本的に、NSCoding プロトコルに準拠する任意のクラスをこの方法でアーカイブできます。NSArray/NSMutableArray は既に準拠しています。それらはすべてのオブジェクトに自分自身をアーカイブするように指示するため、それらも準拠する必要があります。そして、それらのオブジェクトのメンバーはすべて準拠する必要があります。それは木のようなものです。

あなたの配列は準拠しており、それは NSString (これも準拠しています) の配列であるため、あなたはゴールデンです。

于 2009-07-09T14:20:17.850 に答える