2019-08-04

2019-08-04  本文已影响0人  浅月堂前

SDWebImage 梳理

1.cancel 取消正在下载的任务。

  1. 当新图片被下载时,第一步的判断是是否有正在下载的任务,如果有的话取消当前下载任务并删除原先与view绑定的operation。

  2. 如果是在正在从缓存中读取,取消读取的operation,若果是从是下载的任务,取消下载的operation。

  3. 移除进行中的回调block (进度Blok 以及完成Bock)

  4. 取消下载中任务(SDWebImageDownloaderOperation);

  5. 移除在下载管理类中记录的正在下载的operation(SDWebImageDownloaderOperation)。

  6. 移除下载管理类中记录的任务(SDWebImageCombinedOperation);

  7. 移除与View 关联的任务(SDWebImageCombinedOperation

2.placeholder

如果设置了占位图,给ImageView 设置占位图。

3.progress

重置进度,设置进度回调block。combinedProgressBlock

4.和view关联正在下载的任务(SDWebImageCombinedOperation

5.download

5.1、 验证url
5.2、[self.runningOperations addObject:operation];下载管理类记录正在下载的任务 (SDWebImageCombinedOperation)(下载完成以后任务会被删除);

5.3、通过url去缓存查找(先查缓存 再查磁盘)

5.4、缓存中没有找到需要去网络下载
[self.URLOperations setObject:operation forKey:url];下载管理类记录正在下载的任务(下载完成以后任务会被删除)

最后:这篇内容主要是我对阅读SDWebImage源码的一个简单的梳理总结,后续后写关于SDWebImage解码图片的内容。

上一篇下一篇

猜你喜欢

热点阅读