繁体   English   中英

NSURLCache不在iOS 7中存储缓存数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM