码迷,mamicode.com
首页 > Web开发 > 详细

4 SDWebImageManager

时间:2018-03-30 21:50:40      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:combine   返回   属性   取消   状态   sdi   bin   网络   web   

先从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对象,如果失败,或者完成,就移除。
还有一个作用是
技术分享图片
 
 
 
 
 
 
 
 
 
 

4 SDWebImageManager

标签:combine   返回   属性   取消   状态   sdi   bin   网络   web   

原文地址:https://www.cnblogs.com/JShuo/p/8678181.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!