NSURLRequestReturnCacheDataElseLoad не работает?

Я использовал NSURLRequestReturnCacheDataElseLoad, но он не работает, т.е. он всегда загружает данные с сервера, так как каждый раз данные, которые я получил, разные.

Мне интересно, что:

  1. даже с политикой NSURLRequestReturnCacheDataElseLoad он также подчиняется заголовкам управления кешем из ответа сервера, независимо от документа, в котором говорится об игнорировании даты истечения срока действия?

  2. Какова политика хранения для [NSURLCache sharedURLCache]? Если он находится только в памяти, то в следующий раз, когда я запущу приложение, у него не будет кеша на диске?

  3. Я нашел это очень интересным:

NSURLRequestReturnCacheDataElseLoad не загружается из кеша при первом запросе?

что говорит

кажется, эта проблема существует только тогда, когда в URL-адресе есть запрос.

Это подтвержденная проблема?

Спасибо


person hzxu    schedule 07.11.2013    source источник


Ответы (1)


Ну этой теме уже почти 5 лет, а у меня совсем недавно была такая же проблема. В моем случае я использовал NSURLSessionDownloadTask, который, согласно Можно ли использовать HTTP-кеширование с NSURLSessionDownloadTask на iOS?, не использует кэширование независимо от используемой политики кэширования. Я переключил свой код на использование NSURLSessionDataTask, и политика NSURLRequestReturnCacheDataElseLoad сработала, как и ожидалось.

person ScottyB    schedule 16.04.2018