我正在使用SDWebImage预取,即
SDWebImagePrefetcher
.shared()
.prefetchURLs(
urls as [URL],
progress: nil,
completed: { finished, skipped in
onComplete([finished, skipped])
}
)
一切似乎都很好,当我使用我的应用程序时,所有预期的图像都被缓存并感觉响应。在显示这些图像时,我正在显示一个加载程序,大约需要4-5s来完成。
我希望下次打开我的应用程序时,由于图像应该已经在缓存中,因此这种预取将是即时的?但是,如果我完全退出我的应用程序(从iOS活动的应用程序视图中关闭它等),然后再打开它,则必须再次等待相同的4-5s。
我错过了这种方法的作用,也许还有另一种解决方案可以按照我的期望进行操作?
答案 0 :(得分:1)
尝试从以下来源将缓存类型强制设置为磁盘:
/**
A SDImageCacheType raw value which specify the cache type when the image has just been downloaded and will be stored to the cache. Specify `SDImageCacheTypeNone` to disable cache storage; `SDImageCacheTypeDisk` to store in disk cache only; `SDImageCacheTypeMemory` to store in memory only. And `SDImageCacheTypeAll` to store in both memory cache and disk cache.
If not provide or the value is invalid, we will use `SDImageCacheTypeAll`. (NSNumber)
*/
SDWebImageContextOption _Nonnull const SDWebImageContextStoreCacheType;
链接在这里:https://github.com/SDWebImage/SDWebImage/blob/5.x/SDWebImage/SDWebImageDefine.h#L204-L208