1 .SDWebImage的缓存策略

SDWebImage 的图片缓存默认情况采用的是 Memory 和 Disk 双重缓存机制。下载之前先去Memory中查找图片数据,找到直接返回使用;找不到再到Disk中查找图片数据,找到后放入Memory中再返回使用;如果Disk中也找不到再去下载图片;下载到图片后显示图片并将图片数据存到Memory和Disk中。
​​​

2. SDWebImage 缓存图片命名规则?

为了防止名称重复,对其进行 md5 运算

3.默认下载时长和默认缓存时长?

_maxCacheAge = kDefaultCacheMaxCacheAge;static const NSInteger kDefaultCacheMaxCacheAge = 60 60 24 * 7; // 1 week//下载时长15秒

4.磁盘清理时间点?

[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(deleteOldFiles)name:UIApplicationWillTerminateNotificationobject:nil];[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(backgroundDeleteOldFiles)name:UIApplicationDidEnterBackgroundNotificationobject:nil];
分别在『应用被杀死时』和 『应用进入后台时』进行清理操作

5. SDWebImage的最大并发数是多少?

_downloadQueue.maxConcurrentOperationCount = 6

6.SDWebImage防止同一个url多次加载?

SDWebImageDownloader中有一个可变字典属性。@property (strong, nonatomic) NSMutableDictionary *URLCallbacks;通过下面的代码我们可以看出来字典中key是图片的url,value是一个可变数组,数组里面是一个一个的字典,每个字典中保存了下载过程回调和完成回调。每个字典相当于一次下载请求,但是只有第一次的下载请求才会真正去执行下载操作。这样就防止同一个url多次加载。- (void)addProgressCallback:(SDWebImageDownloaderProgressBlock)progressBlock completedBlock:(SDWebImageDownloaderCompletedBlock)completedBlock forURL:(NSURL *)url createCallback:(SDWebImageNoParamsBlock)createCallback {// The URL will be used as the key to the callbacks dictionary so it cannot be nil. If it is nil immediately call the completed block with no image or data.if (url == nil) {if (completedBlock != nil) {completedBlock(nil, nil, nil, NO);}return;}dispatch_barrier_sync(self.barrierQueue, ^{BOOL first = NO;if (!self.URLCallbacks[url]) {self.URLCallbacks[url] = [NSMutableArray new];first = YES;}// Handle single download of simultaneous download request for the same URLNSMutableArray *callbacksForURL = self.URLCallbacks[url];NSMutableDictionary *callbacks = [NSMutableDictionary new];if (progressBlock) callbacks[kProgressCallbackKey] = [progressBlock copy];if (completedBlock) callbacks[kCompletedCallbackKey] = [completedBlock copy];[callbacksForURL addObject:callbacks];self.URLCallbacks[url] = callbacksForURL;//执行下载操作if (first) {createCallback();}});
}在图片下载完成或者取消下载,根据url将URLCallbacks中的数组移除。

关于SDWebImage相关推荐

  1. SDWebImage使用——一个可管理远程图片加载的类库

    SDWebImage托管在github上.https://github.com/rs/SDWebImage 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理.异步下 ...

  2. iOS SDWebImage加载webp

    项目更新使用的最新版本的SDWebImage, 需配置如下: Build Settings -> preprocessor macros -> 添加 SD_WEBP=1

  3. Swift之SDWebImage第三方框架

    在学习Swift过程中,最害怕的使用了OC的第三方框架 好不容易配置成功了,却出现了意外的Bug [UIImageView setImageWithURL:]: unrecognized select ...

  4. 源码阅读:SDWebImage(六)——SDWebImageCoderHelper

    该文章阅读的SDWebImage的版本为4.3.3. 这个类提供了四个方法,这四个方法可分为两类,一类是动图处理,一类是图像方向处理. 1.私有函数 先来看一下这个类里的两个函数 /**这个函数是计算 ...

  5. SDWebImage使用,图片加载和缓存

    本文转载至 http://blog.163.com/wzi_xiang/blog/static/659829612012111402812726/ 清除缓存: [[SDImageCache share ...

  6. SDWebImage开源库阅读分析(全)

    汇总记录: 本文基于SDWebImage 4.2.3版本进行分析和整理(链接地址). 整体目录结构: SDWebImage |----SDWebImageCompat 处理不同平台(iOS.TV.OS ...

  7. SDWebImage

    2019独角兽企业重金招聘Python工程师标准>>> #import "ViewController.h" #import "UIImageView+ ...

  8. SDwebimage使用原理(转载)

    概述 SDWebImage托管在github上.https://github.com/rs/SDWebImage 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理. ...

  9. SDWebImage中文说明

    前端时间想详细的了解下AFNetworking库,所以想着看看官方的API吧.想想既然看看就做下笔记吧,既然做了笔记为何不试着翻译一下呢.然后就有了之前的文章<AFNetworking说明书&g ...

  10. 模仿SDWebImage实现异步加载图片

    模仿SDWebImage实现异步加载图片 SDWebImage想必大家都不陌生吧,要实现它的图片异步加载功能这个还是很简单的. 注意:此处我只实现了异步加载图片,并没有将文件缓存到本地的打算哦:) 源 ...

最新文章

  1. 《柳叶刀》:群体免疫不靠谱!欧洲迄今最大新冠血清学调查显示,西班牙抗体阳性率仅5%...
  2. nacos 怎么配置 里的配置ip_Nacos-服务注册地址为内网IP的解决办法
  3. mormot数据库连接+查询+序列为JSON
  4. 牛客网NC112--进制转换
  5. ROS:ubuntuKylin17.04-Ros使用OrbSLAM2
  6. ios php 表单提交图片上传,axios发送post请求提交图片表单步骤详解
  7. python从入门到精通pdf百度云-跟老齐学Python:从入门到精通 完整版PDF[7MB]
  8. OpenCV 尺度不变特征检测:SIFT、SURF、BRISK、ORB
  9. vue 引入json地图_vue中echarts引入中国地图
  10. Unity中更改鼠标光标样式
  11. exchange服务器维护,EXCHANGE故障排除步骤简述
  12. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1160/1170)...
  13. awk 在指定字符后面插入新字符
  14. 麻雀虽小,五脏俱全 - Java工具类库 - Hutool
  15. 计算机组成二进制除法,计算机组成原理:3.4.1 定点原码 除法器
  16. 哪个软件能准确测试人脸,人脸识别软件哪个好?人脸识别软件推荐2020
  17. 小程序 配置域名 业务域名_使域名成为您的业务
  18. MySql的flush用法
  19. mysql统计枚举值
  20. 春哥博客 - Day01 - Python基础之print

热门文章

  1. 遇到的问题:uboot下,关闭串口前需要printf打印一个“UART BUS OFF!!!”提示信息,但是打印不出来
  2. 深入解读Docker底层技术Cgroup
  3. python 异常处理小结 try except raise assert
  4. python学习(六)----文件和异常
  5. Linux下解压.war文件
  6. android 字体适配_移动端postcss-pxtorem rem适配方案
  7. 本科自考计算机专业有哪些学校,自考本科计算机专业要学什么?广东有哪些学校可以考?...
  8. python中如何将列表按列打印_如果列表只包含0,我如何在python中打印?
  9. 系统服务器ping偶尔超时,云服务器ping超时原因
  10. sci的figure怎么做_SCI论文中Figure图如何制作?