let memoryCapacity = 200 * 1024 * 1024
let diskCapacity = 1 * 1024 * 1024
let cache = URLCache(memoryCapacity: memoryCapacity, diskCapacity: diskCapacity, diskPath: "myDataPath")
URLCache.shared = cache
Scenario1什麼時候將事情從urlcache的內存和磁盤中刪除?
我設置Urlcache文件的內存爲200MB,並設置磁盤空間爲1MB。然後我下載一張圖片。關閉互聯網和強制退出應用程序,通過點擊它再次啓動應用程序,並引發調用(下載圖像),但它會立即崩潰,因爲data
是nil
不用說了,如果我關掉網絡,它仍然會按預期從緩存中讀取,不會發生崩潰。
Scenario2
如果我設置diskCapacity爲200MB(let diskCapacity = 200 * 1024 * 1024
) 則即使緩存刷新出的存儲器,靜止圖像被在盤持續;它會一直顯示!
基於這一觀察,我有以下問題:
- 它是正確的說,每次強制退出時間或您的應用程序崩潰是由於內存警告/問題緩存將獲得刷新,儘管它保持你的磁盤完好無損?
- 緩存可能被刷新內存不足的其他原因?
- 什麼時候可以將存儲在磁盤中的東西刪除?
非常感謝。 「當設備在持久存儲上運行時不會回調」嗎? – Honey
不是我所知道的。 – Rob