SDWebImage共有17个OC文件以及一个多余的头文件,下面将会按照顺序一个一个进行文件的解读(本人学艺不精,如果有不对的地方欢迎指出,有些细节的东西我也不算很理解,写下这边也算是方便以后用到的时候回顾):
1. ImageContextType文件:主要提供识别图片数据的图片格式,是NSData的分类,扩展了一个分类方法sd_imageFormatForImageData,该方法会根据图片数据的第一个字节的数据来判断图片的格式:JPG、PNG、GIF、TIFF和WEBP,否则是undefined。
2. WebCache文件:这个文件主要用于MAC应用的开发,在这里不做分析
3. SDImageCache文件:主要是一个管理文件内存的类,这是一个单例的类,会开出一个单例在一个单独的线程管理图片的内存,提供将UIImage储存到内存中的方法、查询图片是否在内存和沙盒中的方法、从内存中获取到图片对象UIImage等。
4. SDImageCacheConfig文件:控制图片的存储最大值等的配置参数,主要是SDImageCache类的配置对象
5. SDWebImageCompat文件:提供判断当前机器的平台的宏定义以及一个根据比例获取图片对象的方法
6. SDWebImageDecoder文件:是UIImage的分类,用于解码和压缩图片对象
7. SDWebImageDownloader文件:主要是一个SDImageDownloader类,是一个单例类,用于控制调用下载线程去进行下载和取消下载,设置下载的各种请求头等方法。其中创建Operation和将Operation放入线程队列中,是使用GCD在另一个线程中进行的。
8. SDWebImageDownloaderOpeartion文件:主要为SDImageDownloaderOperation类,可以通过该类创建对象,每一个对象是一个下载任务,会在SDImageDownloader对象中进行创建和添加如Operation队列中。
9. SDWebImageManager文件:这是一个单例的管理类,用于管理图片的下载和图片的储存
10. SDWebImagePrefetcher文件:这个单例类给用户提供了一个图片预加载的功能,方便用户提前加载一些图片。
11. UIButtom+WebCache文件:提供给通过调UIView+WebCache分类的方法完成UIButtom设置网络图片的分类
12. UIImage+GIF文件 :提供可以创建GIF的UIImage对象
13. UIImage+MultiFormat文件:提供将NSData转化为UIImage对象的方法和根据不同的图片类型导出原始的NSData对象的方法
14. UIImageView+HighlightedWebCache和UIImageView+WebCache文件:提供给UIImageView设置网络图片的方法
15. UIView+WebCache文件: 是所有组件设置图片的基础,下载图片并且储存的工作通过这个分类来调用,具体的设置图片会下发到各个其他分类,并且提供了一些下载的状态值给用户使用,用于打开或者关闭loading页面等
16. UIView+WebCacheOperation文件:主要用于记录当前正在下载图片的线程的一个字典