NSURLRequest — получить кэшированный ответ и текущий ответ?

#ios #nsurlrequest #nsurlcache

#iOS #nsurlrequest #nsurlcache

Вопрос:

Прежде чем я продолжу писать свою собственную инфраструктуру — возможно ли выполнить запрос, вернуть его немедленно, если он кэширован, а затем вернуться позже, если кэшированная версия не соответствует текущей версии? Является ли такая функциональность встроенной в NSURLCache / NSURLRequest?

Другими словами:

  • запросить MYTHING.json
  • немедленно возвращайтесь с кэшированным MYTHING.json
  • отображение пользователю
  • верните снова, если кэшированная версия не была текущей
  • обновить отображение

Ответ №1:

Вы можете запросить NSURLCache напрямую через cachedResponseForRequest: , чтобы узнать, есть ли что-нибудь уже в нем. Затем вы можете выполнить NSURLRequest и посмотреть, отличается ли то, что возвращается. Но я не знаю о встроенном механизме, который дал бы вам сначала все, что уже есть в кэше, а затем все, что извлекается, если он определяет, что что-то должно быть извлечено, и если то, что было извлечено, отличается.