2011-01-20 8 views
2

インターネットから画像とテキストを非同期で読み込むいくつかのUITableViewがあります。パフォーマンスを向上させるためにイメージをキャッシュします。最高のだろう何画像のキャッシュ - NSURLRequestとcachePolicy Vsカスタムコード

* Using NSURLRequest and cachePolicy? 
* Saving the image to file system? 

NSURLRequestとのCachePolicyケースでは、私はそれらを使用したくない場合は、どのように私は、画像をきれいでしょう。

答えて

2

NSURLRequestは、実行ごとに1回だけイメージをロードする(つまりキャッシュにキャッシュされる)限り、デフォルトのキャッシュポリシーで正常に動作するはずです。しかし、iPhoneはデータをディスクにキャッシュしません。

この時点では、ドキュメントが少し矛盾しています。たとえば、NSURLCache initWithMemoryCapacity:diskCapacity:diskPathのドキュメントでは、iOS上のdiskPathは、ディスク上のキャッシュを格納するサブディレクトリの名前である必要があります。

は、しかしNSURLCacheStoragePolicy上のドキュメントは言う:

重要:iOSではこのキャッシュ ポリシーを無視し、代わりに NSURLCacheStorageAllowedInMemoryOnlyとして扱います。

実際のテストに基づいて、後者がそのように見えます。したがって、設定したオプションにかかわらず、iOS(現在)のディスクにキャッシュされません。だから、イメージをラン間にくっつけたいのであれば、それをファイルシステムに保存する必要があります。

私はまだそれを自分で試していないが、一部はこの目的のためにhttps://github.com/rs/SDURLCacheをお勧めしています。