Использование ASIDownloadCache в автономном режиме - PullRequest
3 голосов
/ 26 октября 2011

Я хочу получить JSON и кешировать его, когда Интернет доступен, или использовать кеш, если его нет. Я использовал этот код, но responseString запроса всегда нулевой, когда я в автономном режиме. (Документация говорит, что это работает, только если сервер возвращает ответ 200 или 300.

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadCache:[ASIDownloadCache sharedCache]];

Любая идея, чтобы получить кэшированные данные, когда нет сетевого подключения?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 26 октября 2011

Необходимо убедиться, что запрос явно кэшируется постоянно (между сеансами приложения). Чтобы установить это:

[request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];

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

2 голосов
/ 26 октября 2011

Вы можете использовать это:

[[ASIDownloadCache sharedCache] pathToCachedResponseDataForURL:]

Чтобы получить путь к кешу на диске. Если кэшированные данные отсутствуют, они вернут nil.

...