iphone - 使用 NSURLRequest 和 NSURLConnection 进行磁盘缓存实际上可以在 iPhone 上使用吗?

标签 iphone caching nsurlconnection disk nsurlrequest

我有一个 UITableView,其单元格包含自定义 ImageView,可以从互联网异步加载图像。为了加载这些图像,我使用 NSURLRequest 和 NSURLConnection ,效果很好。唯一的问题是图像没有缓存,因此每次使用时都会下载。我尝试将 NSURLRequest 的缓存策略设置为“NSURLRequestReturnCacheDataElseLoad”,但没有效果。

link上的最后一个答案看来iPhone 上的 NSURLRequest 不支持磁盘缓存。这是正确的吗?

如果它确实有效,我很想知道它在我的情况下不起作用的原因是什么。

代码如下:

NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://myurl"] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60.0];


connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

最佳答案

我认为它应该有效。如果没有,则可能意味着 Web 服务器实际上正在提供不可缓存的内容。例如,因为它没有设置正确的标题。

如果您可以发布其中一张图片的链接,我们就可以仔细查看。

HTTP/1.1 200 OK
Date: Mon, 01 Mar 2010 12:40:46 GMT
Server: Apache
Last-Modified: Mon, 01 Mar 2010 09:33:29 GMT
ETag: "25e8dd2-11a6-480b9f1178c40"
Accept-Ranges: bytes
Content-Length: 4518
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: image/png

这是您的一张图像作为标题返回的内容。我没有看到 ExpiresCache-Control header ,因此这可能就是它们不被缓存的原因。我认为就 WebKit 而言,这是每次都应该重新加载的动态内容。

关于iphone - 使用 NSURLRequest 和 NSURLConnection 进行磁盘缓存实际上可以在 iPhone 上使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2352841/

相关文章:

iphone - 如何强制更新应用程序设置包?

iphone - 将浮点值从数组传递到坐标时出现异常

php - 由于缓存,CakePHP Flash 消息未显示

Objective-C iOS NSURLConnection statusCode 400 没有正文返回

ios - 复杂的多线程应用程序的最佳网络解决方案是什么?

ios - NSURLConnection GET方法

ios - 如何检测用户是否在我的应用程序中为本地通知设置了横幅样式警报或 'normal' 样式警报?

ios - 允许用户继续在 iOS 应用程序中收听他们的音乐

caching - Redis 写入速度较慢

java - 缓存键生成