[英]NSCache with hundreds of images
我有一個collectionView一次顯示9張圖像(200x300px)。 但是總數可以達到數百。
目前,我檢查cellForItem中是否有圖像在緩存中。 如果沒有,我將從文件系統中加載它並將其放入緩存中。
問題是:第一次滾動瀏覽集合時,它將丟幀,因為它仍在從文件系統加載圖像。 經過最初的滾動瀏覽后,黃油變得光滑。 (大約5秒鍾)
我想知道將所有(或前x個)圖像預加載到緩存中是否是一個好習慣?
我認為5s沒什么大問題,但我擔心5s會損壞舊硬件。
有什么想法嗎?
嘗試在后台執行磁盤加載機制。 您可以使用填充了加載操作的NSOperationQueue設置隊列。
將NSCache與預加載機制一起使用沒有太大意義,因為即使您預加載了所有映像,系統也可以並且會在認為合適的情況下驅逐該緩存。 在這種情況下,您進行預加載的工作無濟於事。
您是否看過SDWebImage ? 它已經包含an asynchronous memory + disk image caching with automatic cache expiration handling
而且,我通常會預先加載所有圖片以避免閃爍
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.