Ios7 NSURLRequest缓存问题iOS 7

Ios7 NSURLRequest缓存问题iOS 7,ios7,nsurlrequest,nsurlrequestcachepolicy,Ios7,Nsurlrequest,Nsurlrequestcachepolicy,在iOS 7中,cachePolicy不起作用,它只是缓存下载的json //URLRequest NSString *url = [NSString stringWithFormat:@"http://www.semhora.com/jsonparser/categories/categories_%d_test.json", _categoriesIndex]; NSURLRequest *theRequest=[NSURLRequest requestWit

在iOS 7中,cachePolicy不起作用,它只是缓存下载的json

//URLRequest
        NSString *url = [NSString stringWithFormat:@"http://www.semhora.com/jsonparser/categories/categories_%d_test.json", _categoriesIndex];
        NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:url]
                                                  cachePolicy:NSURLCacheStorageNotAllowed
                                          timeoutInterval:60.0];
如何在iOS 7中禁用缓存?

我刚刚使用了:

//URLRequest
        NSString *url = [NSString stringWithFormat:@"http://www.semhora.com/jsonparser/categories/categories_%d_test.json", _categoriesIndex];
        NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:url]
                                                  cachePolicy:0
                                          timeoutInterval:60.0];

现在它工作了,直到现在,苹果开发论坛都给出了它发生的原因的答案。

我遇到了同样的问题,我验证了设置
cachePolicy=0
而不是
cachePolicy=NSURLCacheStorageNotAllowed
可以解决这个问题

这对我来说也没有意义,因为0对应于
NSURLCacheStorageAllowed

我们不能将其设置为0,因为苹果可能会在未来的版本中修复此问题。
您可以尝试拨打:

[NSURLCache sharedullcache]在启动请求之前移除缓存响应:您的请求]

更新:
经过进一步研究,我发现被破坏的代码使用了错误的枚举。看看NSURLRequest.h中的NSURLRequestCachePolicy。这正是您所需要的,它解释了为什么设置为0为您解决了问题。

缓存策略的正确枚举是:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:downloadURL cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:60];
如果您使用3G,即使您在
NSMutableURLRequest
中禁用缓存,某些提供商也会使用缓存,因此如果缓存策略不起作用,请将HTTP标头字段缓存控制设置为无缓存

[request setValue:@"no-cache" forHTTPHeaderField:@"cache-control"];

请注意,对于IOS 8.1,缓存策略<代码> NSURLRestRestRealDebug、Loaland Read TeaCache DATA/<代码>仍然未在基础框架中的NSURLRead头文件中描述。应该是这个块还是允许缓存?