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?

questionAnswers(1)

yourAnswerToTheQuestion