4 SDWebImageManager

Posted jshuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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对象,如果失败,或者完成,就移除。
还有一个作用是
技术分享图片
 
 
 
 
 
 
 
 
 
 

以上是关于4 SDWebImageManager的主要内容,如果未能解决你的问题,请参考以下文章

渗透测试自学篇—SSRF服务端请求伪造漏洞及利用方法

4.2 进程

4.PromQL快速入门

HighgoDB查询慢SQL和阻塞SQL

2.4 EXERCISE

HighgoDB查询慢SQL和阻塞SQL