2011-07-30 8 views
3

私は、将来の使用のためにコアデータを保存する必要があるクエリに使用されるいくつかの他のデータフィールドと共に複雑なデータ構造を持っています。複雑なデータ構造をJSON文字列にシリアル化し、多くのプロパティを持つエンティティを作成するのではなく、コアデータエンティティに1つの文字列フィールドとして格納することを考えています。この複雑なデータ構造は、将来の使用のために純粋に保存されていますが、必要なプロパティに関するクエリはありませんが、他のデータフィールドをクエリする必要があります。iOSのコアデータに複雑なデータ構造を保存するのにベストプラクティスは何ですか?

私はこの(JSON文字列としての)ストアがベストプラクティスか、これに対するよりよい解決策があるのだろうか?

答えて

3

短い回答、いいえ、それは最善の解決策ではありません。作成したデータモデルでオブジェクトを保存したくない場合は、Core Dataを使用するとほとんど効果が得られません。基本的には、json文字列をデシリアライズするまでは区別できない不透明なオブジェクトがたくさんあります。これで十分であれば、オブジェクトをディスクにアーカイブし、Core Dataのオーバーヘッドをスキップすることをお勧めします。

+0

私のシナリオでは、私は複雑なデータ構造と、コアデータに格納する予定の他の多くのプロパティを持っています。これは基本的にタスクキューです。私は複雑なデータ構造のタスクメタデータを持っています。所有者、優先度、時間、jobid ...これらのフィールドでクエリが必要ですが、タスクジョブスレッドのみがタスクメタデータのデータを必要とします。 –

+0

また、jsonの代わりにplistを使用してください。それはすでに組み込まれている。 – hop

+0

ああ、私はあなたの質問の言葉でそれを認識していない。コアデータの誤用(データモデルがすでにある場合は、なぜ今終了し、このデータで不正行為をするのか?)のように感じるので、これに反してアドバイスします。しかし、基本的に検索、並べ替え、フィルタリングできないバイナリフィールドである限り、技術的な問題を引き起こすことはありません。 –

関連する問題