Я тестировал контроллер представления iPhone, который использует UIWebView для загрузки внешнего содержимого, а не ресурсов в пакете проекта. Другой инженер заметил, что веб-представление вообще не кэшируется, поэтому я решил провести небольшое исследование. Некоторые старые вопросы указывали на то, что UIWebView просто не мог кэшировать внешний контент.
Предыдущие вопросы SO по кешированию UIWebView:
Эти сообщения были довольно обескураживающими, но я заметил, что все они были заданы до выхода iOS 4.0. Я протестировал следующий подход к кэшированию, который показался довольно простым.
NSURLRequest *request = [NSURLRequest requestWithURL:myUrl
cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30];
[webView loadRequest:request];
Кажется, он отлично работает на iOS 4.3, но не работает совсем на iOS 3.0. Я проверил это, указав устройства на прокси Charles (на iPhone, Настройки -> WiFi, Ручной прокси) и записав трафик на мой сервер.
Начал ли UIWebView соблюдать политику кеширования в iOS 4.0? Может ли кто-нибудь еще подтвердить это, или я просто воображаю что-то?