关闭应用程序后,预取的SDWebImage无法持久保存

时间:2019-01-20 18:08:30

标签: ios image caching sdwebimage

我正在使用SDWebImage预取,即

SDWebImagePrefetcher
      .shared()
      .prefetchURLs(
        urls as [URL],
        progress: nil,
        completed: { finished, skipped in
          onComplete([finished, skipped])
        }
      )

一切似乎都很好,当我使用我的应用程序时,所有预期的图像都被缓存并感觉响应。在显示这些图像时,我正在显示一个加载程序,大约需要4-5s来完成。

我希望下次打开我的应用程序时,由于图像应该已经在缓存中,因此这种预取将是即时的?但是,如果我完全退出我的应用程序(从iOS活动的应用程序视图中关闭它等),然后再打开它,则必须再次等待相同的4-5s。

我错过了这种方法的作用,也许还有另一种解决方案可以按照我的期望进行操作?

1 个答案:

答案 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