Я создаю приложение для iOS, которому нужно получать много информации из удаленного API. Есть много http-запросов, которые можно отлично кэшировать, но кажется, NSURLConnection
не кэширует достаточно агрессивно: каждый раз, когда я убиваю приложение и запускаю его снова, все запросы выполняются снова, а не из кеша ( iOS 5 должна использовать дисковый кеш). Если я сделаю тот же запрос во второй раз (в течение срока службы приложения), он будет поступать из кеша.
Я использую политику NSURLRequestReturnCacheDataElseLoad
, и заголовки элементов управления кешем на http-сервере настроены так, что все можно кэшировать.
Итак, проблема в том, что все запросы повторяются каждый раз при запуске приложения. Почему это не с диска?
Изменить: похоже, эта проблема существует только в том случае, если в URL-адресе есть запрос. Например, когда я запрашиваю http://www.apple.com/, все в порядке, на свежем запуск приложения, фактически никаких запросов не поступало. Когда я перехожу на http://www.apple.com/?test, то первый запрос всегда делал.
Редактировать 2: похоже, TTURLRequest
(часть three20) и SDURLCache
являются решением.