iOS SDWebImage知识点
1、clear 和 clean
clear 先把之前的缓存文件夹删除掉,然后新建一个文件夹
clean 先删除过期的文件,然后计算剩余缓存文件的大小 currentSize > maxSize,继续删除,按照它缓存文件创建的时间删除,知道currentSize <= maxSize
2、内存缓存时间是多久?
一周
3、内存缓存机制?
NSCache
4、最大并发量
6条,可以通过SDWebImageDownloader类的maxConcurrentDownloads属性来修改
5、SDWebImage 任务的执行? 是怎么实现的?
两种:先进先出,以队列的方式,按照先进先出的顺序下载。这是默认的下载顺序 SDWebImageDownloaderFIFOExecutionOrder
后进先出,以栈的方式,按照后进先出的顺序下载。 SDWebImageDownloaderLIFOExecutionOrder
实现:依赖来实现的
6、默认的缓存路径
沙盒下的 default 下
7、怎么处理图片的名称?
对URL进行MD5加密
8、如何判读图片的第一个字节
得到二进制的第一个字节
9、使用什么下载图片?
NSURLConnection类,用代理方法下载图片
10、默认的超时时间是多少?
15秒
11、该框架内部对内存警告的处理方式?
监听系统发出的警告通知,然后清空内存缓存
12、NSCache和字典的区别
NSCache使用方法和可变字典类似,它线程安全 可设置缓存成本,通过代理方法能拿到被处理的对象,可以自动清理缓存数据
13、如何计算图片的成本?
长宽缩放比例 * 缩放比例
14、保证错误的URL不会被尝试重新下载
因为内部设置了一个黑名单 NSMutableset

iOS SDWebImage知识点的更多相关文章
- iOS 常见知识点(三):Lock
iOS 常见知识点(一):Runtime iOS 常见知识点(二):RunLoop 锁是最常用的同步工具.一段代码段在同一个时间只能允许被有限个线程访问,比如一个线程 A 进入需要保护代码之前添加简单 ...
- iOS面试知识点
1 iOS基础 1.1 父类实现深拷贝时,子类如何实现深度拷贝.父类没有实现深拷贝时,子类如何实现深度拷贝. 深拷贝同浅拷贝的区别:浅拷贝是指针拷贝,对一个对象进行浅拷贝,相当于对指向对象的指针进行复 ...
- iOS开发--知识点总结
1 .全局变量,变量名前加下划线.和系统一致. 2 . nil指针为空 @“”字符串为空 (内容为空) == 判断内存地址 基本变量 对于一些基本类型 可以使用==来判断, ...
- iOS 小知识点(持续更新)
1.如何通过代码设置Button title的字体大小 设置Button.titleLabel.font = [UIFont systemFontOfSize:<#(CGFloat)#> ...
- iOS开发知识点总结
main文件做了这几件事: 1. 创建当前的应用程序 2. 根据4个参数的最后为应用程序设置代理类(默认情况下是AppDelegate) 3. 将appDelegate 和 应用程序 建立关联(指定代 ...
- iOS SDWebImage使用详解
这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征. 使用示范的代码:UITableView使用UIImageView ...
- IOS - SDWebImage 非ARC 问题
非arc项目中使用SDWebImage类库 1.添加类库引用 (1)ImageIO.framework (2)MapKit.framework 2.在targets->build P ...
- IOS SDWebImage实现原理详解
在之前我写过SDWebImage的使用方法,主要是用与获取网络图片,没有看过的朋友可以看看. 这篇文章将主要介绍SDWebImage的实现原理,主要针对于获取网络图片的原理,如果没有第三方我们该怎么去 ...
- iOS SDwebImage 使用说明
SDWebImage托管在github上.https://github.com/rs/SDWebImage 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理.异步下 ...
随机推荐
- Node.js、npm、vue-cli 的安装配置环境变量
我安装node.js是为了学习vue,需要用到npm,所以就把node.js安装了,安装node.js会带有npm的安装. 在安装node.js之前,我们需要了解以下三个内容. npm: Nodejs ...
- Java注解之 @Target、@Retention简介
先来看一个Spring中的一个常用注解 package org.springframework.stereotype; import java.lang.annotation.Documented; ...
- python 循环结构 while for...in
# ### 循环结构 while for...in """ 循环结构的特点:减少代码的冗余,提高代码的效率 语法形式: """ # 打印1~ ...
- 谷歌AM HTML视频代码amp-video示例
ntroduction Use amp-video to embed videos into your AMP HTML files. Video source files must be serve ...
- C++ MFC万能的类向导
MFC的类向导 只要你掌握了类向导,你基本就已经掌握了MFC了,毕竟布局和代码都是自动生成,再加上C++基础上手还是挺快的,剩下的就是多多练习了. 转自: https://blog.csdn.net/ ...
- cocos creator使用anysdk接入admob广告教程
http://lolling787.lofter.com/post/1f5b6553_12925042 cocos creator使用anysdk接入admob广告
- windows CMD常用命令
命令简介 cmd是command的缩写.即命令行 . 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行安全.稳定,有的用户还在使用,所以一 ...
- sklearn中报错ValueError: Expected 2D array, got 1D array instead:
from sklearn.linear_model import LinearRegression lr = LinearRegression() print(tr_x.shape,tr_y.shap ...
- asp.net无限递归
private void button1_Click(object sender, EventArgs e) { DialogResult dialogResult = folderBrowserDi ...
- Eclipse及Eclipse为基础的App报错“Failed to create the Java Virtual Machine”的解决办法
由于OracleJDK马上就要收费了,公司要求更换OpenJDK,结果安装后Eclipse及Eclipse为基础的App启动报错:“Failed to create the Java Virtual ...