SDWebImage 源码分析

  • Manager : 核心管理类
  • Downloader: 核心下载类
  • Cache :缓存类- 内存缓存、磁盘缓存
  • Decoder : 解码器 - 图片的格式
  • Prefetcher
  • Transformer: 图片转换 - 添加圆角、滤镜、旋转、模糊等
  • ImageView: 动图与动画
  • Utils: 常量与宏定义工具
  • Categories: UIView 及子类的加载 image 的扩展
  • WebCache Categories: UIView 及子类的缓存扩展

主要描述了类与类之间的关系、实现、协议、属性、等

Manager 主要的管理实例,控制缓存、加载、变换、等属性,回调代理

缓存的核心管理类、内存缓存和磁盘缓存。继承与NSCache

通过解码器,判断图片的类型:png、JPEG、GIF、webp等

Downloader核心类,主要用于下载管理,Operation

主要是 UIView 及子类的扩展缓存,定义一些属性(通过 runtime 实现)

ImageView 先调用category里的方法,通过ImageManager管理类,去找Cache和Loader里的图片,然后加载出来

从分析源码中我学到了什么?

  1. SDImageTransformer 等类的工厂模式与多态。
  2. 在操作一个 Operations 时,需要加锁,避免争资源的问题存在。
  3. 通过宏定义来满足在 iOS 和 Mac OS 等不同苹果设备的使用
  4. 可以通过协议的实现来扩展属性、参数、等,有较高的自定义性
  5. 实现一个目标的具体思路,流程等。

转载于:https://juejin.im/post/5ccfa5d1f265da038d0b5804

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值