Quando exatamente as coisas são removidas da memória e do disco do urlcache?
let memoryCapacity = 200 * 1024 * 1024
let diskCapacity = 1 * 1024 * 1024
let cache = URLCache(memoryCapacity: memoryCapacity, diskCapacity: diskCapacity, diskPath: "myDataPath")
URLCache.shared = cache
Cenário 1
Estou configurando a memória do urlcache para 200mb e definindo o espaço em disco para 1mb. Então eu baixa uma imagem. Desligue a Internet e force o encerramento do aplicativo, inicie-o novamente tocando nele e inicie uma chamada (para baixar a imagem), mas ela falha imediatamente porquedata
énil
Escusado será dizer que se eu desligar a Internet, ele ainda será lido do cache conforme o esperado e nenhuma falha acontecerá.
Cenário2
Se eu definir o diskCapacity como 200mb (let diskCapacity = 200 * 1024 * 1024
), mesmo que o cache esteja sem memória, a imagem ainda será mantida no disco; sempre aparecerá!
Com base nessa observação, tenho as seguintes perguntas:
É correto dizer que toda vez que você força o encerramento ou o aplicativo falha devido a um aviso / problema de memória, o cache é liberado, embora deixe o disco intacto?Algum outro motivo pelo qual o cache pode ficar sem memória?Quando os itens armazenados no disco podem ser removidos?