1

したがって、これはアプリケーション設計の問題です。しかし、それはただ議論するだけでなく、「答える」ことができると思います。:)

構築中のアプリケーションにRestKitを使用しています。明らかに、ストレートオブジェクトまたはコアデータオブジェクトに何かを入れるのが非常に簡単になります。

私が扱っている特定の例では、Facebook の投稿に対するコメントと同じように、コメントがあります。

これらのコメントをコア データに保存することの最も良い点は、NSFRC を使用すると、コメントを非常に簡単に並べ替えて、タイムラインの適切な場所に自動的に更新/挿入できることです。しかし、そこにもいくつかの難点があります。

たとえば、無限読み込みでは、新しい最新のコメントと古い保存されたコメントの間でコメントの読み込みを管理する必要があります。(おそらく初めて 25 を取得しましたが、それ以来 100 の新しいコメントがありました。そのため、最初に最新の 25 を取得し、それらに遭遇するまで、新しいコメントと古いコメントの間に自動ロード セルを配置する必要があります。後でページネーションする必要があります。

それとは別に、潜在的に何千ものコメントをコアデータに保存しています。長い間大したことではないかもしれませんが、最終的には GCD タスクで古いコメントのクリーンアップを開始したいと思うかもしれません。

では、何をコア データに保存し、何を一時オブジェクトとして保持するかについて、主な考えは何ですか。(おそらく、NSCache や新しい Tumblr キャッシュhttps://github.com/tumblr/TMCacheなどのキャッシュにそれらを保存します)。

編集

ここで少し明確にする必要があるかもしれません。Core Data の目的を理解しました...アプリの再起動後も保持し、関係を持つオブジェクト グラフを作成します。たっぷり使っています。ここで私が疑問に思っているのは、ネットワーク呼び出しとオフラインでの可用性を常に待つ必要がないために、物事を持続させたい灰色の領域だと思います.

しかし、Facebook のストーリーやコメントと同じように、新しいストーリーが絶え間なく入ってくるので、古い投稿に 300 件のコメントがあったとしても、必ずしも気にする必要はありません。誰かが自分の「投稿」のコメントを何度も見に戻ってくる可能性があります。または、「投稿」とコメントを何気なくブラウジングしているだけで二度と戻ってこない人もいます。

そのため、サービスから多くのエンティティ (コメント) が送られる可能性がある、このようなものの戦略を検討しようとしています。人々はそれらを何度も見たいと思うことがあります(自分の「投稿」)。他の人がこれをどのように行っているかを確認しようとすると、コアデータにすべてを詰め込むものもあれば、(Facebook のように) 最新の 25-50 をデータベースに保存するものもあり、それを超えるものは一時的なものです (おそらく古いストーリーを消去しています)コメントも定期的に。)

4

2 に答える 2

1

Core Data は、「ダム データ ストレージ」として使用するようには設計されていませんが、オブジェクトの永続性を目的として設計されています。そのため、アプリの使用間で保持したいものはすべて Core Data に入れる必要があります。

Core Data を適切に使用している場合は、すべてのキャッシュも処理されます。

編集:

好みに合わせて頻繁に変更されるものや、永続的に保存したくないNSCacheものは、より良いオプションになる可能性があります. ユーザーが明日また見ると思わない場合は、それらのビットを永続化から除外してください。(私見では)

于 2013-06-01T23:32:47.000 に答える
1

2 番目のリポジトリを作成します。「最近」と呼ばれる期間を選択するか、その期間を設定します。プライマリ リポジトリを定期的に調べて、最近の範囲より古いオブジェクトを見つけ、それらのオブジェクトを 2 番目のリポジトリに移動します。

次に、最近またはすべてを検索する手段をユーザーに提供します。

必要なのが最近の値だけである場合、検索はより高速になり、何も失われません。

于 2013-06-02T13:06:59.407 に答える