SDWebImage中为imageview提供了UIImage+webcache.h类,这个分类中有一个sd_setimageWithUrl:,会在图片出现前先显示占位图,当真实图片加载出来就替换占位图。
加载过程如下:
1、首先在webimagecache中寻找图片对应的缓存,它是以url为数据索引先在内存中查找是否有缓存;
2、如果没有缓存,就通过md5处理过的key来在磁盘中查找对应的数据,如果找到就会把磁盘中的数据加到内存中,并显示出来;
3、如果内存和磁盘中都没有找到,就会向远程服务器发送请求,开始下载图片;
4、下载完的图片加入缓存中,并写入到磁盘中;
5、整个获取图片的过程是在子线程中进行,在主线程中显示。