Почему URLCache требует, чтобы diskCapacity и MemoryCapacity были намного больше, чем ответ на его кэширование?IOS

Программируем под IOS
Ответить
Anonymous
 Почему URLCache требует, чтобы diskCapacity и MemoryCapacity были намного больше, чем ответ на его кэширование?

Сообщение Anonymous »

У меня есть следующий код.

Код: Выделить всё

let customCache: URLCache = {
let cacheSizeMemory = 512 * 1024 * 1024
let cacheSizeDisk = 512 * 1024 * 1024
return URLCache(memoryCapacity: cacheSizeMemory, diskCapacity: cacheSizeDisk, diskPath: "serverTest")
}()

let customSession: URLSession = {
// Create a custom URLSessionConfiguration
let sessionConfiguration = URLSessionConfiguration.default
sessionConfiguration.urlCache = customCache
sessionConfiguration.requestCachePolicy = .useProtocolCachePolicy

// Create a custom URLSession with the configuration
let customSession = URLSession(configuration: sessionConfiguration)
return customSession
}()
Вот несколько заголовков моего ответа:

Код: Выделить всё

< content-length: 93828673
< cache-control: public, max-age=300
Я ожидаю, что из-за этих заголовков устройство будет кэшировать ответ в течение 5 минут. Однако это не то, что происходит.
Теперь, когда я меняю эти переменные на следующие, кеш работает:
< pre class="lang-swift Prettyprint-override">

Код: Выделить всё

let cacheSizeMemory = 512 * 1024 * 1024 * 5
let cacheSizeDisk = 512 * 1024 * 1024 * 5
Для меня это совершенно бессмысленно, поскольку размер ответа составляет всего 93 828 673 байта, что намного меньше максимального размера кэша в 536 870 912 байт.
Устанавливает ли Apple какой-то тип буфера или что-то в этом роде, где один ответ может занимать только x% кеша или что-то в этом роде? Я не могу найти никакой документации, подтверждающей это, но это единственное объяснение, которое я могу придумать.

Подробнее здесь: https://stackoverflow.com/questions/791 ... eater-than
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»