2

我使用了 NSURLRequestReturnCacheDataElseLoad 但它不起作用,即它总是从服务器加载数据,因为每次我收到的数据都不同。

我想知道:

  1. 即使使用 NSURLRequestReturnCacheDataElseLoad 策略,它也遵守服务器响应中的缓存控制标头,而不管文档是否说忽略过期日期?

  2. 存储策略是[NSURLCache sharedURLCache]什么?如果它只在内存中,那么下次我启动应用程序时它不会在磁盘上缓存?

  3. 我发现这很有趣:

NSURLRequestReturnCacheDataElseLoad 在第一次请求时没有从缓存中加载?

它说

似乎只有在 url 中有查询时才存在此问题。

这是确认的问题吗?

谢谢

4

1 回答 1

0

好吧,这个话题已经有将近 5 年的历史了,但我最近也遇到了同样的问题。就我而言,我使用的是 NSURLSessionDownloadTask,根据Can I use HTTP caching with an NSURLSessionDownloadTask on iOS? , 无论使用哪种缓存策略,都不使用缓存。我将代码切换为使用 NSURLSessionDataTask 并且 NSURLRequestReturnCacheDataElseLoad 策略按预期工作。

于 2018-04-16T02:46:05.637 回答