无法禁用UIWebView缓存

时间:2015-12-03 07:11:51

标签: ios objective-c caching uiwebview nsurlrequest

我正在使用UIWebView发出一系列请求,我需要保持UIWebView的缓存清除,以便我可以从头开始每个新请求。因此,在执行每个请求之前,我正在执行以下操作:

[[NSURLCache sharedURLCache] removeAllCachedResponses];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
[[NSURLCache sharedURLCache] setMemoryCapacity:0];

但遗憾的是它并没有帮助。每次第一次请求大约需要4秒,而每次后续请求大约需要1.5秒时,显然加载的数据正在某处缓存。

我还明确地尝试了为请求设置缓存策略,如下所示:

NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:URL];
request.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
[self.webView loadRequest:request];

但它也无济于事。第一个请求比下面的请求花费更长的时间。就像没有为请求设置缓存策略一样。

任何想法,伙计们?

2 个答案:

答案 0 :(得分:0)

试试这段代码:

NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    for (NSHTTPCookie *each in cookieStorage.cookies)
    {
        [cookieStorage deleteCookie:each];
    }

答案 1 :(得分:0)

尝试使用NSURLCacheStorageNotAllowed。这指定不允许以任何方式在NSURLCache中存储,无论是在内存中还是在磁盘上。

Foundation Framework Reference > NSCachedURLResponse Class Reference