关于SDWebImage的使用和相关面试题
2016-05-23 03:26
246 查看
一、SDWebImage的简单介绍。
1、是iOS比较有名的网络获取图片的第三方框架。
2、主要使用的功能:图片下载、图片缓存、下载进度监听、gif处理等等(功能十分强大,具体还有哪些可以再去查一下)。
3、用法比较简单,效率较高。
二、SDWebImage怎样去实现的。
1、将网络图片的异步加载功能封装在
2、与
三、SDWebImage的简单实用
#import <SDWebImage/UIImageView+WebCache.h> //引用头文件 和别的第三方不太一样 直接引用”UIImageView+WebCache.h“就好
/**
* 下载网络图片并且计算下载进度,如果缓存中存在则不计算。
*
* @param receivedSize 当前接收的大小
* @param expectedSize 期望或者目标大小
*
* @param placeholderImage 可以理解为 占位图片
*/
[self.MyImage sd_setImageWithURL:urlImage placeholderImage:nil options:SDWebImageProgressiveDownload progress:^(NSInteger receivedSize, NSInteger expectedSize) {
CGFloat progress = (CGFloat)receivedSize / expectedSize;
NSLog(@"%f",progress);
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
NSLog(@"下载完成要做的事");
}];
SDWebImage常见的面试题:
1> 图片文件缓存的时间有多长:
2> SDWebImage 的内存缓存是用什么实现的?
3> SDWebImage 的最大并发数是多少?
是程序固定死了,可以通过属性进行调整!
4> SDWebImage 支持动图吗?GIF
5> SDWebImage是如何区分不同格式的图像的
根据图像数据第一个字节来判断的!
PNG:压缩比没有JPG高,但是无损压缩,解压缩性能高,苹果推荐的图像格式!
JPG:压缩比最高的一种图片格式,有损压缩!最多使用的场景,照相机!解压缩的性能不好!
GIF:序列桢动图,特点:只支持256种颜色!最流行的时候在1998~1999,有专利的!
6> SDWebImage 缓存图片的名称是怎么确定的!
如果单纯使用 文件名保存,重名的几率很高!
使用 MD5 的散列函数!对完整的 URL 进行 md5,结果是一个 32 个字符长度的字符串!
7> SDWebImage 的内存警告是如何处理的!
利用通知中心观察
执行
执行
执行
通过以上通知监听,能够保证缓存文件的大小始终在控制范围之内!
1、是iOS比较有名的网络获取图片的第三方框架。
2、主要使用的功能:图片下载、图片缓存、下载进度监听、gif处理等等(功能十分强大,具体还有哪些可以再去查一下)。
3、用法比较简单,效率较高。
二、SDWebImage怎样去实现的。
1、将网络图片的异步加载功能封装在
UIImageView的分类中。
2、与
UITableView完全解耦。
三、SDWebImage的简单实用
#import <SDWebImage/UIImageView+WebCache.h> //引用头文件 和别的第三方不太一样 直接引用”UIImageView+WebCache.h“就好
/**
* 下载网络图片并且计算下载进度,如果缓存中存在则不计算。
*
* @param receivedSize 当前接收的大小
* @param expectedSize 期望或者目标大小
*
* @param placeholderImage 可以理解为 占位图片
*/
[self.MyImage sd_setImageWithURL:urlImage placeholderImage:nil options:SDWebImageProgressiveDownload progress:^(NSInteger receivedSize, NSInteger expectedSize) {
CGFloat progress = (CGFloat)receivedSize / expectedSize;
NSLog(@"%f",progress);
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
NSLog(@"下载完成要做的事");
}];
SDWebImage常见的面试题:
1> 图片文件缓存的时间有多长:
1周
_maxCacheAge = kDefaultCacheMaxCacheAge
2> SDWebImage 的内存缓存是用什么实现的?
NSCache
3> SDWebImage 的最大并发数是多少?
maxConcurrentDownloads = 6
是程序固定死了,可以通过属性进行调整!
4> SDWebImage 支持动图吗?GIF
#import <ImageIO/ImageIO.h> [UIImage animatedImageWithImages:images duration:duration];
5> SDWebImage是如何区分不同格式的图像的
根据图像数据第一个字节来判断的!
PNG:压缩比没有JPG高,但是无损压缩,解压缩性能高,苹果推荐的图像格式!
JPG:压缩比最高的一种图片格式,有损压缩!最多使用的场景,照相机!解压缩的性能不好!
GIF:序列桢动图,特点:只支持256种颜色!最流行的时候在1998~1999,有专利的!
6> SDWebImage 缓存图片的名称是怎么确定的!
md5
如果单纯使用 文件名保存,重名的几率很高!
使用 MD5 的散列函数!对完整的 URL 进行 md5,结果是一个 32 个字符长度的字符串!
7> SDWebImage 的内存警告是如何处理的!
利用通知中心观察
- UIApplicationDidReceiveMemoryWarningNotification接收到内存警告的通知
执行
clearMemory方法,清理内存缓存!
- UIApplicationWillTerminateNotification接收到应用程序将要终止通知
执行
cleanDisk方法,清理磁盘缓存!
- UIApplicationDidEnterBackgroundNotification接收到应用程序进入后台通知
执行
backgroundCleanDisk方法,后台清理磁盘!
通过以上通知监听,能够保证缓存文件的大小始终在控制范围之内!
clearDisk清空磁盘缓存,将所有缓存目录中的文件,全部删除!实际工作,将缓存目录直接删除,再次创建一个同名空目录!
相关文章推荐
- IT职业的发展前景
- 一起来谈谈PHP程序员成长路线
- 面试题数组篇(1)
- 这么做的话,程序员不会被同行挖角!
- 记录一下上一阶段的面试
- 程序员的自我修养
- 找链表的中间结点和倒数第k个结点(链表笔试题面试题)
- SQL面试题--行列转换
- 一名好程序员要具备的技能(摘自CSDN)
- 程序员修养录:从入门修炼到高手四阶段<学习金字塔理论>
- PHP程序员的能力水平层次
- .Net 面试题整理(一)
- 面试小技巧 get
- Probability to form a triangle by splitting a stick
- 黑马程序员 浅谈---> JAVA指针问题
- java.lang.Integer的面试陷阱
- 初级Java攻城狮面试指导(二)
- iOS面试和招聘
- 转载 写了 35 年代码的老程序员的最大遗憾
- 互联网公司面试题目