2015-12-03 3 views
0

Я делаю серию запросов с UIWebView, и мне нужно очистить кеш 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]; 

, но это не помогает, как хорошо. Самый первый запрос занимает значительно больше времени, чем следующие. Как и без настройки политики кэширования для запроса вообще.

Любые идеи, ребята?

ответ

0

Попробуйте этот код:

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

к сожалению, это не поможет –

0

Попробуйте использовать NSURLCacheStorageNotAllowed. Это указывает, что хранение в NSURLCache не допускается ни в какой форме, ни в памяти, ни на диске.

Foundation Framework Reference > NSCachedURLResponse Class Reference

+0

Спасибо за ответ, но я не могу, как я могу использовать эту константу. Экземпляры классов NSCachedURLResponse создаются где-то iOS без меня вообще. Должен ли я каким-то образом перехватить создание кэшированных объектов ответа? Можете ли вы предоставить дополнительную информацию? –

+0

В вашем запросе вы можете использовать его как: 'NSURLRequest * request = [NSURLRequest requestWithURL: URL cachePolicy: NSURLCacheStorageNotAllowed timeoutInterval: 10.0];' –

+0

, к сожалению, это не помогло. похоже, что вы ошибаетесь. NSURLCacheStorageNotAllowed имеет тип NSURLCacheStoragePolicy и предназначен для использования класса NSCachedURLResponse, в то время как NSURLRequest cachePolicy - NSURLRequestCachePolicy –