NSURLCache
是某种黑暗艺术魔法,既没有正确记录,也没有预期的行为。
我正在使用AFNetworking
' AFHTTPSessionManager
来使用NSURLSession。我正在使用this模拟服务来创建自定义HTTP响应。
我正在为NSURLCache设置磁盘容量和所有缓存策略。
然后在URLSession:task:didCompleteWithError
的{{1}}方法中,我这样做:
NSURLSessionTaskDelegate
文档说明了 NSURLRequest *request = task.currentRequest;
NSCachedURLResponse *cachedResponse = [[NSURLCache sharedURLCache] cachedResponseForRequest:request];
@result NSCachedURLResponse存储在具有给定的缓存中 请求,如果没有存储NSCachedURLResponse,则为nil 请求。
AFNetworking的常见问题解答声明:
只要您的NSURLRequest对象具有正确的缓存策略, 并且您的服务器响应包含有效的Cache-Control标头, 响应将自动缓存以用于后续请求。
毕竟我的假设是,如果未正确设置Cache-Control,cachedResponseForRequest:
变量的值将为nil。然而,无论我到目前为止做了什么 - 将其设置为“私人”,“无缓存”等。或者其他 - cachedResponse ALWAYS包含缓存的响应。如何验证缓存机制是否按预期工作?我在设置中缺少什么?
我一直在做我的测试,首先在线提出请求,然后在我的电脑上关闭互联网。 XCode 7.0 beta iOS 9.0。
感谢任何帮助。