SDWebImageManager的downloadImage不缓存图片

1.问题:

使用SDWebImageManager的downloadImage函数下载图片时不缓存图片到沙盒(但sd_setImage函数会下载图片和缓存图片)。

2.分析

在单独使用SDWebImageManager.shared().imageDownloader?.downloadImage下载图片时(),不会自动保存已经下载的图片到沙盒缓存起来是因为内部没有调用保存图片storeImage函数(参考SDWebImage流程图)。

因此使用SDWebImageManager.shared().imageCache?.imageFromCache(forKey: String)时也无法正常获取图片,更别提获取图片尺寸了(比如图片布局时)。

SDWebImage流程图

3.解决

在该downloadImage函数下载完成的闭包里手动调用保存图片函数即可,例如SDWebImageManager.shared().saveImage(toCache: image, for: url.absoluteURL),该函数底层会调用SDImageCache的storeImage方法(方法即函数,称呼是不是很乱?凑合看吧)。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容