美文网首页
SDWebImage 源码解读之管理类SDWebImageMan

SDWebImage 源码解读之管理类SDWebImageMan

作者: jiangjunwy | 来源:发表于2017-07-12 16:15 被阅读0次

    本章开始将介绍SDWebImage库中协调核心功能(图片下载,图片缓存)使用的管理单例类SDImageCache,通过对SDWebImage库中底层的关键类(SDWebImageDownloader,SDWebImageDownloaderOperation,SDImageCache)的一步步解读,这时候的SDWebImageManager的解读就容易很多,该类中的主要功能代码如下:

    在代码中的开始部分,会对图片的URL进行有效值判断,如果传入的URL类型不是正确的NSURL类型,则不会进行下一步操作,直接将结果回调给上一级,这里使用了@synchronized()指令,在指令中去判断当前的加载路径是否包含在self.failedURLs数组中,在这里创建一个互斥锁,保证此时没有其它线程对self.failedURLs对象进行修改,防止self.failedURLs对象在同一时间内被其它线程访问,起到线程的保护作用。接下来我们可以看到,网络图片的请求与否是依赖于本地跟内存是否存在图片资源为前提的,代码中调用SDImageCache的方法- (NSOperation *)queryDiskCacheForKey:(NSString *)key done:(SDWebImageQueryCompletedBlock)doneBlock 去本地的缓存路径跟内存进行进行查找,判断是否有对应资源加载过,有加载过的直接使用,未加载过的进行网络数据请求,并保存到本地,将结果返回到上一级。

    下面以UIImageView对象加载网络图片为例,回顾SDWebImage库整个框架的实现思路路线图:

    相关文章

      网友评论

          本文标题:SDWebImage 源码解读之管理类SDWebImageMan

          本文链接:https://www.haomeiwen.com/subject/hwwmhxtx.html