API からテキスト投稿のリストを取得しています。各投稿には、タイトルと説明があります。それらすべてを iPhone アプリに保持する必要があります。
どのストレージを使用すればよいですか? ドキュメント ストレージを使用する必要がありますか、それとも CoreData SQLite ストアを使用する必要がありますか?
API からテキスト投稿のリストを取得しています。各投稿には、タイトルと説明があります。それらすべてを iPhone アプリに保持する必要があります。
どのストレージを使用すればよいですか? ドキュメント ストレージを使用する必要がありますか、それとも CoreData SQLite ストアを使用する必要がありますか?
CoreData は、アプリでデータを永続化するための優れた効率的な方法です。ただし、そのような場合は、デバイスのストレージ容量を使いすぎないように、古すぎるデータをクリーンアップする必要があることを考慮してください。さらに、CoreData はオブジェクトの関係を永続化するのに非常に適していると考えてください。ただし、あなたのケースでは、おそらくオブジェクト グラフを永続化する必要はなく、投稿データのリストだけを永続化する必要があるため、CoreData のクエリ機能を利用することはできません。
ただし、ネットワーク ベースの API を使用している場合は、API によって提供されるデータ キャッシングを利用して、iOS ネットワーク キャッシング メカニズムを使用することもできます。物事を簡素化するために、MKNetworkKitなどのオープンソースのネットワーク フレームワークを利用できます。MKNetworkKitは、キャッシュされたデータをファイル システムに保持し、有効期限が切れるとすぐに、またはカスタマイズ可能な時間 (数日、数週間、数か月) 後にそれらを削除します。または、サードパーティのツールを使用したくない場合でも、iOS で Apple が提供する NSURLCache オブジェクトを使用できます。このアプローチは、コア データ アプローチよりもはるかに単純です。このような場合でも、ネットワークからデータをフェッチし、データがキャッシュされている場合は、ネットワーク パスをたどらず、データをファイル システムから直接取得します。
それらに対してクエリを実行する場合は、core data または sqlite を使用することをお勧めします。それ以外の場合は、ドキュメント ファイルは問題ないと思います。
iCloudを使用すると、ドキュメントはより理にかなっていますが、データに対してクエリを実行する場合はDBが最適であるという@yibuyiquは正しいです.
検索可能で最初に表示可能なデータを DB に配置し、完全なデータを保持するファイルを指すようにすることができます (ファイル名に GUID を使用します)。このように iCloud を使用する場合、データは既にドキュメントに含まれているため、エクスポートする準備ができています。
もう 1 つの利点は、DB 内のデータが少ないほど検索パフォーマンスが向上することです。したがって、画像やその他の重いデータを保存している場合は、DB の外部に置くのが最適です。
UIManagedDocumentを使用して、両方の利点を得ることができます。後で iCloud 同期を追加することもできます。