4

REST ベースの iOS アプリのさまざまな画面を通過するときに最高のユーザー エクスペリエンスを提供するために、過去にいくつかの異なる戦略を使用してきました。

  • NSURLCache の活用: これは特定のユース ケースでは問題なく機能しますが、「API の呼び出し中にすぐにキャッシュを表示し、必要に応じて新しいデータで画面を更新する」という方法にもっと興味があります。NSURLCache は、さまざまなポリシーに応じて、フォームキャッシュの読み取りまたはリモートからの読み取りなどのオプションのみを提供するようですが、キャッシュから読み取り、リモートから読み取ることはできません。
  • コア データの活用: Restkit、AFIncrementalStore、またはカスタム フレームワークのいずれかを使用して、呼び出し中にコア データからデータを取得するという考え方です。呼び出しが戻ると、コア データが最新のデータで更新され、インターフェイスが更新されます。うまく機能しますが、多くの構成とメンテナンスが必要であり、高度な複雑さが追加されます。これは、オフライン モードが必要な場合に適したオプションですが、キャッシュのみが必要な場合は、やり過ぎに見えます。-

コアデータを必要とせずに、これに対して別のアプローチを取っている人や、高度なキャッシュ機能を提供する軽量ライブラリを推奨している人はいますか?

4

2 に答える 2

0

私の質問に対する考えられる答えの 1 つは、NSCoding/NSKeyedArchiver を活用することです。

これに関する適切な説明は、http://nshipster.com/nscoding/にあります。

NSKeyedArchiver を使用すると、Core Data を使用してデータ モデル全体をセットアップする必要なく、データを永続化できます。問題は、NSKeyedArchiver の周りに効率的なキャッシュ メカニズムを構築する方法と、サード パーティのライブラリが既にそれを行っているかどうかです。そして、答えは TMCache https://github.com/tumblr/TMCacheと呼ばれているようです

したがって、この時点での私の意図は、クラスを NSCoding に準拠させ、一部のオブジェクトを TMCache を通じて永続化することです。バックグラウンドでキャッシュを更新しながら、最初に API 呼び出しをキャッシュにルーティングすることを計画しています。

于 2013-11-08T15:03:31.137 に答える