2012-05-01 8 views
0

APIからテキスト投稿のリストを取得しています。各投稿にはタイトルと説明があります。私はiPhoneアプリでそれらのすべてを維持する必要があります。私はどのストアを使うべきですか:ドキュメントストレージかSQLiteですか?

私はどのストレージを使用しますか?ドキュメントストレージを使用するか、CoreData SQLiteストアを使用する必要がありますか?

答えて

0

これらに対してクエリを実行する場合は、コアデータまたはsqliteを使用することをお勧めします。さもなければ、私は文書ファイルが大丈夫だと思います。

0

CoreDataは、アプリでデータを永続化するのに適した効率的な方法です。しかし、そのような場合には、あまりにも古いデータをクリーンアップして、デバイス内にあまりにも多くのストレージスペースを使用することを避けることはあなた次第であると考えてください。 CoreDataはオブジェクトの関係を維持するのに非常に優れていると考えていますが、おそらくオブジェクトグラフを保持する必要はなく、ポストデータのリストだけを保持する必要があるため、CoreDataのクエリ機能の利点は得られません。

しかし、ネットワークベースのAPIを使用している場合は、APIによって提供されるデータキャッシュのメリットを活用し、iOSネットワークキャッシュメカニズムを使用することもできます。単純化するために、MKNetworkKitのようなオープンソースのネットワークフレームワークを利用することで、キャッシュされたデータをファイルシステムに保存し、期限切れやカスタマイズ可能な時間(日、週、月)の後すぐに削除します。また、サードパーティツールを使用したくない場合でも、iOSでAppleが提供するNSURLCacheオブジェクトを引き続き使用できます。この方法は、コアデータよりもはるかに単純です。そのような場合でも、ネットワークからデータをフェッチしますが、まだキャッシュされている場合はネットワークパスを守らずにデータを直接ファイルシステムから取得します。

0

iCloudでは、ドキュメントは理にかなっていますが、@ yibuyiquは正しいとしています。データに対してクエリを実行する場合は、DBが最適です。

検索可能なデータと最初に表示可能なデータをDBに格納し、完全なデータを保持するファイルを指し示すことができます(ファイル名にGUIDを使用)。このように、iCloudを使用すると、データがすでにドキュメントに入っているため、エクスポートする準備ができています。

もう1つの利点は、検索パフォーマンスがDB内に存在するデータが少なくなることです。したがって、イメージやその他の重いデータを格納している場合は、そのDBの外部を持つことが最善です。

0

UIManagedDocumentを使用すると、両方の利点を得ることができます。また、後でiCloud同期を追加することもできます。

関連する問題