4

在 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 中禁止缓存?

4

3 回答 3

7

我遇到了同样的问题,我验证了该设置cachePolicy = 0 而不是cachePolicy = NSURLCacheStorageNotAllowed解决问题。

这对我来说也没有意义,因为 0 对应于NSURLCacheStorageAllowed.
我们不能只将其设置为 0,因为 Apple 可能会在未来的版本中解决此问题。
您可以尝试调用:

[NSURLCache sharedURLCache] removeCachedResponseForRequest:yourRequest]就在发起请求之前。

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

于 2013-09-24T01:04:39.000 回答
6

我刚用过:

//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];

现在它起作用了,从苹果开发论坛得到任何答案,直到现在它为什么会发生。

于 2013-09-23T22:04:59.767 回答
2

缓存策略的正确枚举是:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:downloadURL cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:60];

如果您超过 3G,即使您在您NSMutableURLRequest的 .

[request setValue:@"no-cache" forHTTPHeaderField:@"cache-control"];
于 2014-07-13T07:39:26.340 回答