SDWebImage(主要是用与获取网络图片):
只要针对于获取网络图片的原理:
1.当我们获取网络图片的时候,我们首先想到的是URL,如果没有URL也就是什么也没有,获取URL之后我们SDWebImage实现的并不是直接去请求网络,而是检查图片缓存中有没有和当前URL相关的图片如果有直接返回Imgae 如果没有进行下一步。
2当缓存中没有image时,SDWebImage依旧不会直从网络上获取,而是检查沙盒中是否存在图片,如果存在,则把沙盒中对应的图片存进image缓存中,然后按着第一步的判断进行。
3.如果沙盒中也不存在,则显示占位图,然后根据图片的下载队列缓存判断是否正在下载,如果下载则等待,避免二次下载。如果不存则创建下载队列,下载完毕后将下载操作从队列中清除,并且将image存入图片缓存中。
4.刷新UI(当然根据实际情况操作)将image存入沙盒缓存。