构建自己的图片下载库

1 篇文章 0 订阅

图片下载库原理:即SDWebImage原理

下载图片模块使用操作和操作队列来完成,存入内存和沙盒。第二次使用时先从内存中找,如果内存中没有从沙盒中找,如果沙盒中存在就使用并且在内存中存一份,方便下次使用
主要有几个部分:下载操作类、管理类、存储类、以及类别

需求:
下载网络上的图片
缓存 内存缓存 硬盘缓存 管理缓存(获取缓存大小 删除过期缓存等等)

图片下载结构分析:

  1. 图片下载管理类

    1. 创建下载管理类SQImageManager 继承于NSObject
    2. 单例类
    3. 重写初始化方法 初始化属性 queue 初始化缓存
    4. 下载图片方法 传入URL和完成block
    5. 添加监听,出现内存警告时,删除内存缓存
  2. 图片下载类

    1. 新建下载类SQImageOperation继承于NSOperation
    2. 重写start下载图片
    3. 声明自定义初始化方法 传入URL和完成block
  3. 相对应的类别

    1. 创建类别 声明方法
    2. -(void)downloadImageWithURL:(NSString )urlStr placeHolderImage:(UIImage )image;

    实现 先将占位图赋值给image 然后使用SQImageManager下载图片 在完成block中更新UI

  4. 创建缓存类是 SQImageCache

    1. 单例类
    2. 重写初始化方法 初始化缓存
    3. 初始化内存缓存 即创建字典
    4. 初始化硬盘缓存 创建硬盘上存图片的文件夹
    5. 根据key保存data到内存
    6. 根据key从内存中取data
    7. 根据key保存data到硬盘
    8. 根据key从硬盘中取data
    9. 清理内存
    10. 清理硬盘
    11. 获取硬盘缓存大小(此时计算文件时 计算文件夹无效 必须计算每个文件的大小)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值