【发布时间】:2018-04-29 20:38:41
【问题描述】:
在我的 iOS 应用程序中,我想缓存从不同目的地请求的图像。对于下载图像,我使用 URLSessionDataTasks 和 URLSession.shared 提供的默认缓存机制,它利用了 NSURLRequestUseProtocolCachePolicy。
缓存工作基本正常。正在缓存响应,并且正在正确处理诸如 etag 和缓存控制“max-age”之类的缓存标头。但是,如果服务器响应缓存控制标头设置为“no-cache”,则 URLSession 的 URLCache 仍在缓存图像。我可以通过 URLCache.shared.cachedResponse(for: request) 访问缓存的响应,并且具有相同请求的新数据任务将从缓存中返回时间图像(我使用 Charles 代理进行了验证,但我没有看到请求我正在等待)。
为什么它不能正确处理响应的缓存头?是否需要手动检查响应的缓存标头?
【问题讨论】:
标签: ios caching nsurlsession no-cache