4 SDWebImageManager

先从downloadImageWithURL方法讲起:
 
 
 
每次方法调用的时候,就会创建一个SDWebImageCombinedOperation对象。
 
 
有三个属性,并遵循了SDWebImageOperation代理。
cancelled 是用来标记状态。 
cancelBlock 是用来回调。 
cacheOperation 是磁盘查找时,创建的。 也是用来判断状态。 
 
代理方法:
 
 
先标记状态 cancelled = YES;
任何调用cancel block  
 
 
 
imageCache 是 SDImageCache类。 主要提供缓存和磁盘的查询和存储工作。 
 
下面一系列 都是对SDWebImageDownloaderOptions的设置。
 
 
imageDownloader是SDWebImageDownloader类。 主要是负责下载。
调用了downloadImageWithURL方法。
 
下面一系列的处理,就是图片下载完成之后的处理。如果图片下载成功,就调用SDImageCache的storeImage方法。同时存到缓存和磁盘当中。
 
 
在这里实现了operation 的cancelBlock 。
对subOperation ,也就是downloadImageWithURL函数返回的SDWebImageDownloaderOperation,进行了cancel 处理。 
 
并且将这个operation从runningOperations 中移除。
 
最后,downloadImageWithURL函数返回这个给operation上一级使用。 目的,有两点:
1.供外界进行取消操作。
2.对于同一个ImageView或者Button,多次请求网络时,将之前操作cancel掉。 
 
其他:
 
SDWebImageManager是一个单例,在初始化时:
 
创建
imageCache (单例)
imageDownLoader (单例)
failedURLs 用来加载失败的URL,下次再请求时,直接返回错误。 
runningOperations  存储的是正在进行中的SDWebImageDownloaderOperation对象,如果失败,或者完成,就移除。
还有一个作用是
 
 
 
 
 
 
 
 
 
 
posted @ 2018-03-30 19:37  我是你们最爱的硕哥  阅读(283)  评论(0编辑  收藏  举报