0

私は初心者です。TableView で URL ごとに画像を表示したいので、以下のように AFNetworking+SDURLCache を使用します。

// init URLCache
SDURLCache *URLCache = [[SDURLCache alloc] initWithMemoryCapacity:1024*1024*2 diskCapacity:1024*1024*20 diskPath:[SDURLCache defaultCachePath]];
[URLCache setIgnoreMemoryOnlyStoragePolicy:YES];
[SDURLCache setSharedURLCache:URLCache];

================================================== ======

// set cell    
[cell.imageView setImageWithURL:[NSURL URLWithString:IMAGE_URL] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
[[SDURLCache sharedURLCache] cachedResponseForRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:IMAGE_URL]]];

ここでは、すべての異なるセルで画像を使用しています。すべて正常に動作します!プロジェクトを初めて実行するとき、Web イメージが非常に大きいため、セルにイメージを表示するのに長い時間がかかります。プロジェクトを 2 回目に実行すると、TableView が画像を 1 つずつすぐにロードすることがわかりました。すべての画像をすぐに 1 回ロードしないのはなぜですか。キャッシュされた画像をローカル画像に置き換え、一度にTableViewの画像をロードしました。「キャッシュされたイメージ」と「ローカル」イメージの違いは何ですか? SDURLCache が機能しませんでしたか?

4

1 に答える 1

0

私は iOS の経験がありませんが、キャッシュされた画像は Web クライアントのキャッシュに保存されている画像であり、そのリソースが変更され、キャッシュされたバージョンがキャッシュ。

ローカル イメージは、デバイス自体に保存されているイメージだと思います。iDevicesのストレージはNANDフラッシュチップなどで構成されているため、これはダウンロードよりも明らかに高速であり、国内のインターネット接続をはるかに上回っています.

于 2012-11-04T10:21:17.687 に答える