SDWebImage实现原理--两张图带你看懂
来源:互联网 发布:跳跃网络推荐账号 编辑:程序博客网 时间:2024/06/14 20:40
SDWebImage底层实现有沙盒缓存机制,主要由三块组成:1、内存图片缓存,2、内存操作缓存,3、磁盘沙盒缓存
SDWebImage GitHub地址 版本4.0.0
一、SDWebImage时序图
二、SDWebImage类图
三、SDWebImage原理
1.UIImageView+WebCache: setImageWithURL:placeholderImage:options: 先显示 placeholderImage ,同时由SDWebImageManager 根据 URL 来在本地查找图片
2.SDWebImageManager: downloadWithURL:delegate:options:userInfo: SDWebImageManager是将UIImageView+WebCache同SDImageCache链接起来的类, SDImageCache: queryDiskCacheForKey:delegate:userInfo:用来从缓存根据CacheKey查找图片是否已经在缓存中
3.如果内存中已经有图片缓存, SDWebImageManager会回调SDImageCacheDelegate : imageCache:didFindImage:forKey:userInfo:
4.如果内存中没有图片缓存,那么生成 NSInvocationOperation 添加到队列,从硬盘查找图片是否已被下载缓存。
5.如果上一操作从硬盘读取到了图片,将图片添加到内存缓存中(如果空闲内存过小,会先清空内存缓存)。SDImageCacheDelegate 回调 imageCache:didFindImage:forKey:userInfo:。进而回调展示图片
6.如果从硬盘缓存目录读取不到图片,说明所有缓存都不存在该图片,需要下载图片,回调 imageCache:didNotFindImageForKey:userInfo:
- SDWebImage实现原理--两张图带你看懂
- SDWebImage的实现原理
- SDWebImage底层实现原理
- SDWebImage-实现原理
- SDWebImage实现原理
- SDWebImage底层实现原理
- SDWebImage实现原理
- SDWebImage实现原理
- SDWebImage的实现原理
- SDWebImage的实现原理
- SDWebImage原理实现
- SDWebImage的实现原理
- SDWebImage底层实现原理
- SDWebImage内部实现原理剖析
- SDwebImage更新即实现原理
- AFNetworking和SDWebImage实现原理
- SDWebImage的内部实现原理
- IOS SDWebImage实现原理详解
- 手动异常处理
- iOS10适配及Xcode8配置
- caffe message学习之BlobProto
- 1034. 有理数四则运算
- iOS书摘之编写高质量iOS与OS X代码的52个有效方法
- SDWebImage实现原理--两张图带你看懂
- 解决:Jack is required to support java 8 language features.
- 如何正确接收 GitHub 的消息邮件
- iOS模拟各种网络状态
- 在创业公司的体会
- Docker镜像构建的两种方式
- 一个人成为废材的9大原因
- JDK、JRE、JVM三者间的关系
- Ajax提交与传统表单提交的区别说明