SDWebImage源码学习笔记

//  这是我第二次学习sdwebimage源码,第一次学习吸收的很少,看不懂啊。第二次看个50%,在此记录一点笔记。


    首先是目录:

    1.SDWebImage目录 里面有两个类,SDWebImageCompat.h 里面有个根据屏幕设置图片scale的方法

    SDWebImageOperation.h 声明了一个协议,取消操作 (可以理解这一个放的公共方法目录)

   2.Downloader 目录(顾名思义,下载操作相关的目录)里面有两个关键的类

   SDWebImageDownloaderOperation.h 它是nsopertion的子类,实现了nsurlconnection的委托。就是说,nsurl的数据下载是在这里实现的,一个图片下载对应自己的SDWebImageDownloaderOperation任务。

 SDWebImageDownloader.h  他是下载的管理类,里面有downloadQueue,请求头部的设置,使用单例。也就是说,每个下载任务都是放到SDWebImageDownloader里面的quenue执行。所有请求共享一个qunue,这样就理解来这个类的作用。

  3.cache 目录(这里是图片缓存策略管理类)SDImageCache.h 里面设置了缓存目录,缓存时间,缓存方式,查找缓存等相关操作,例如系统内存警告通知处理。

 4.Utils 目录 (这里是综合逻辑的管理类)SDWebImageManager.h  它里面结合了之前的下载类,缓存类。提供单例方法,提供下载方法入口downloadWithURL: 这样,可以统筹结合配置处理下载任务和cache缓存管理。SDWebImageDecoder.h 图片解压缩处理,SDWebImagePrefetcher 可以预先下载图片,方便后续使用。

 5.Categories 目录 (分类,就算提供了图片方法)最常用的UIImageView+WebCache.h 它们使用的是SDWebImageManager 。

  这样大概那一个目录干什么的就清楚了。整体逻辑也清楚了。

你可能感兴趣的:(ios)