SDWebImage 图片缓存过程、清除缓存过程详解

缓存过程

1、 SDImageCache 根据CacheKey查找缓存中是否有图片,如果有则回调显示
2、如果缓存中没有,则根据URLKey在硬盘缓存中查找,这一步是在NSOperation中进行的
3、如果在硬盘缓存中找到了,将图片放到内存缓存中(如果内存不够会先清除缓存 ,会在下面讲到),进而回调展示图片
4、如果硬盘缓存中也找不到,会生成下载器下载图片
5、下载完后用SDWebImageDecoder解码,下载和解码都会在NSOperation中执行不会影响UI
6、下载完成后发送通知,在内存缓存和硬盘缓存中保存图片


清除缓存

cleanMemary
1、遍历缓存目录,删除所有过期图片(一周)
2、统计没有过期图片大小总和
3、判断没有过期的图片总大小是否超过缓存大小(getSize获得内存缓存大小)
4、如果超过就会删除没有过期的图片,从大到小删除

你可能感兴趣的:(SDWebImage 图片缓存过程、清除缓存过程详解)