[英]NSURLCache not storing cached data in iOS 7
下面给出的代码适用于iOS 6,但它不适用于iOS 7。
NSCachedURLResponse cachedURLResponse = [[NSCachedURLResponse alloc] initWithResponse:response data:data userInfo:nil storagePolicy:NSURLCacheStorageAllowed];
[[NSURLCache sharedURLCache] storeCachedResponse:cachedURLResponse forRequest:request];
NSLog(@"Cached response is %@", [[NSURLCache sharedURLCache] cachedResponseForRequest:request]);
在iOS 6中,我获得了缓存的响应数据,但在iOS 7中,它返回null。 我使用以下命令在App委托中设置了NSURLCache对象:
NSURLCache *urlCache = [[NSURLCache alloc] initWithMemoryCapacity:2 * 1024 * 1024
diskCapacity:2 * 1024 * 1024
diskPath:nil];
[NSURLCache setSharedURLCache:urlCache];
缓存无法在iOS 7中运行的原因是什么?
缓存机制依赖于HTTP头。 如果首先允许缓存,请检查返回的HTTP标头。 您可以使用像'Charles'这样的网络代理来完成。
我正在做一个POST方法并使用所需的NSData设置http_body。 在iOS 6中,响应被缓存,但这在iOS 7中不起作用。
所以,现在我们不是设置http_body,而是在URL中附加param并发出请求,缓存现在正在运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.