【发布时间】:2012-08-19 14:44:09
【问题描述】:
不缓存数据的选项是NSDataReadingUncached。
但是,如果我使用 dataWithContentsOfURL 更新来自 UITableViewCell 中 URL 的图像(每个单元格一个图像),然后我查看 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,但由于某种原因,在 Apple 文档的 NSURLConnection 参考中,除了那里之外,根本没有出现“缓存”或“缓存”这个词提到了一个名为“URLCache”的示例项目,但根本没有提到缓存。
【问题讨论】:
标签: ios caching nsurlconnection nsdata