2011-06-17 5 views
4

私は350の辞書オブジェクトを検索しています。コアデータまたは検索のためのplistにデータを格納する方が効率的でしょうか?コアデータとPlistの比較

基本的に、各オブジェクトは8つのキー値を持つ辞書です。 350のオブジェクトは、JSONフィードにオンラインで保存されます。私はアプリが最初に起動したときにフィードをダウンロードし、そのデータをコアデータまたはplistに保存したいと考えています。アプリケーションでは、デフォルトでいくつかのオブジェクトを持つテーブルがあります。ユーザはこれらの項目を追加/削除することができます。ユーザーが追加をクリックすると、350個のオブジェクトのすべてをユーザーに表示し、検索メカニズムを提供したいと考えています。

この場合、JSONフィードをPlistに格納するのか、Core Dataを使用するのですか?

答えて

5

です。実際のパフォーマンスの問題にぶち当たっていない場合は、アプリケーションで読みやすく、適切なものを実行してください。たとえば、ユーザーがある種のレコードを追加できるデータを保存する場合、コアデータはそのための一般的な状況を処理し、取り出されたデータコントローラと共に使用してテーブルを非常にスムーズに管理します。また、簡単にオブジェクトモデルにバインドすることができますので、キー検索を行う必要はありません。

静的なデータまたは編集可能な値が静的なキーのリストにある場合は、常にそのすべてをロードする必要があります。便宜上、plistをロードしてください。あなたの特定の状況についての詳細情報を投稿し、私の回答を更新することができます。

UPDATE:

私は、あなたはおそらくいくつかの理由のためのコアデータを使用したいと思います。まず、これらのオブジェクトのそれぞれが同じ8個のキーを持っている場合は、辞書の代わりにバインドされたオブジェクトでそれぞれを表現したいと思うでしょう。第2に、コアデータは検索、ソート、フィルタリングされることを意図しています。第3に、NSFetchedResultsControllerでは、テーブル(右インデックス付き)またはスクロールセレクタにバインドするのはそれほど難しくありません。 NSManagedObjectのプロパティの名前を8キーと同じにすると、KVCを使用してJSONから読み込むのが簡単になります。

plistを使用することはできますが、より多くの足の仕事をする必要があります。

+0

ご返信ありがとうございます。私は上記の私の質問を編集しました。あなたはそれに応じてあなたの答えを親切に編集しますか?ありがとうございました。 – darksky

+0

ああ、本当に - 私は完全にスクロールセレクターを忘れてしまった!私はそれを実装します。偉大な..ピーターをたくさん感謝します! – darksky

+0

+1私はここにあるもののほとんどに同意します。しかし、この質問はiOSに関するものなので、iOSではバインディングが利用できないことを指摘することが重要です。 – Caleb

3

人生の多くのものと同様に、それは依存しています。私は、データが大きすぎて記憶に残らない限り、plistはおそらく大丈夫だろうと言います。また、データが静的であれば、私はplistに傾くだろう。 CoreDataは、多くのデータや関連するデータオブジェクトが多く、そのデータが時間の経過とともに変化する場合には、より優れています。

編集内容に基づいています。私は、コアデータが行く方法であることに同意します。頻繁にデータの追加/更新/削除/並べ替え/検索/フィルタリングを行うたびに、私はCore Dataを好む、それはAppleの推奨された方法でもあります。

関連する問題