データをキャッシュしないオプションはNSDataReadingUncached
です。
しかしdataWithContentsOfURL
、(セルごとに1つの画像)のURLから画像を更新するために使用しUITableViewCell
、シミュレーター用のMacのアクティビティモニター(iOS 5.1シミュレーターとして実行)を見ると、ネットワークトラフィックは最大12kb/sにジャンプしますテーブルを上下に連続してスクロールしたときの受信率。上下のスクロールを停止すると、ネットワークアクティビティが約2kb/sの受信速度以下に低下します。これらの画像はそれぞれ20kb程度と非常に小さく、上下にスクロールすると、1つまたは2つの画像が消えたり表示されたりするだけなので、キャッシュがある場合でも、大きくする必要はありません。
dataWithContentsOfURL
したがって、データをキャッシュしないように見えます。オプションを使用dataWithContentsOfURL:options:error:
してオプションが0
ないことを意味する場合でも、ネットワークアクティビティは約12kb/sに跳ね上がります。
では、データをキャッシュしますか?そうでないdataWithContentsOfURL
場合、なぜdataWithContentsOfURL:options:error:
データをキャッシュしないオプションがあるのですか?
以下も実行されます。
[[NSURLCache sharedURLCache] setMemoryCapacity:1024*1024*10];
しかし、viewDidLoad
ネットワークレートはまだ上昇します。通常の推奨事項は、キャッシングが必要な場合はを使用することNSURLConnection
ですが、何らかの理由で、NSURLConnection
Appleのドキュメントのリファレンスでは、サンプルプロジェクトについて言及されている場合を除いて、「キャッシュ」または「キャッシング」という単語はまったく表示されません。 「URLCache」と呼ばれますが、キャッシュについてはまったく言及されていません。