Сохраняется ли CachedURLResponse между запусками приложений? - PullRequest
0 голосов
/ 20 января 2020

В приведенном ниже примере из документации Apple показано, как вручную создать CachedURLResponse для UrlSession.

Одним из параметров является storagePolicy (в примере установлено значение .allowedInMemoryOnly).

Если установить такой параметр на .allowed (вместо .allowedInMemoryOnly, кэш должен храниться на жестком диске. Означает ли это, что он сохраняется между запусками приложения?

func urlSession(_ session: URLSession, dataTask: URLSessionDataTask,
                willCacheResponse proposedResponse: CachedURLResponse,
                completionHandler: @escaping (CachedURLResponse?) -> Void) {
    if proposedResponse.response.url?.scheme == "https" {
        let updatedResponse = CachedURLResponse(response: proposedResponse.response,
                                                data: proposedResponse.data,
                                                userInfo: proposedResponse.userInfo,
                                                storagePolicy: .allowedInMemoryOnly)
        completionHandler(updatedResponse)
    } else {
        completionHandler(proposedResponse)
    }
}

спасибо

1 Ответ

2 голосов
/ 20 января 2020

Класс URLCache реализует кэширование ответов на запросы загрузки URL-адреса путем сопоставления объектов NSURLRequest с объектами CachedURLResponse. Он обеспечивает составной в памяти и кэш на диске и позволяет вам манипулировать размерами как в памяти, так и на диске. Вы также можете контролировать путь, по которому данные кэша постоянно хранятся.

  • регистр разрешен Хранение в URLCache разрешено без ограничений.
  • case allowInMemoryOnly Хранение в URLCache разрешено; однако хранение должно быть ограничено только памятью.

Да.

...