这篇博客简单介绍一下SDWebImage中下载和缓存图片的思路,针对一些想快速了解这个框架的兄弟,所以就不上代码了,想深入研究的小伙伴可以进源代码继续研究。
SDWebImage中用字典做了图片缓存(防止图片错位) 还有操作缓存(NSOperation)(防止重复下载)
这两个字典都是用图片的url作为key值 首先会根据图片的url去检查图片缓存中是否有图片 如果有就直接显示 如果没有就去沙盒里找 如果沙盒中有就加载沙盒中的图片并放进图片缓存中,如果沙盒中没有的话就显示占位图片 然后根据图片的url判断操作缓存中有没有下载操作 如果有的话就等待下载完成 如果没有就创建下载操作放到操作缓存中 下载成功后将操作从操作缓存中移除 将图片放到图片缓存中 然后显示图片 并保存到沙盒中