//联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄
*如何学习第三方框架
一.准备工作
如何获得?http://github.com
搜索:sdwebImage
github上所有框架都不要download
1.带版本库克隆到本地
$ git clone --recursive https://github.com/rs/SDWebImage.git
//更新服务器的代码,进入存放代码的位置
$ git pull
提示$ git clone --help
--recursive递归,如果第三方框架有其他的依赖,会一起clone到本地
2.打开项目,运行测试程序SDWebImage.xcworkspace
如果提示:clang: error: no input files通常是因为第三方框架还依赖其他的框架
3.通常作者提供的演示程序,能够最快的找到如何使用的方法,以及细节!
4.看官方首页文档,找到最重要的方法!
5.建立"分支"-同样适合走向工作岗位
在Xcode中,选择source control-Branch-New Branch(分支)
建立分支可以让我们放手去尝试!
二.测试第三方框架的功能!
1.拖拽框架的时候,不要copy到项目中,保证有一个唯一的地方框架的副本,能够让自己的学习有效的积累。
2.阅读代码,找到关键代码阅读!
找到关键方法:sd_setImageWithURL
提示:不要从第一个文件开始看起
3.不清楚的地方,可以创建测试程序运行,测试效果,阅读代码未必能够看清每一个细节。
4.变阅读代码,变写注释!
github.com/liufan321
SDWebImage有一个分支“我的学习”
三.常用方法
1>常用方法
- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder;
- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options;
- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder completed:(SDWebImageCompletionBlock)completedBlock;
- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletionBlock)completedBlock;
2> SDWebImageOptions
* SDWebImageRetryFailed :下载失败后,会自动重新下载
* SDWebImageLowPriority :当正在进行UI交互时,自动暂停内部的一些下载操作
* SDWebImageRetryFailed | SDWebImageLowPriority :拥有上面2个功能
四.面试题:
1.磁盘缓存有多长时间
答:一周
2SDWebImage底层是怎么实现的?
答: PPT的"cell下载图片思路–有沙盒缓存"
3.SDWebImage中的GIF是怎么播放的?
答:1> #import
2>读取出GIF文件中的每一桢图片,设置UIImageView的可动画数组
3>自动计算gif播放的时长
另外,如果用SDWebImage显示gif,什么附加操作都不用做
4.SDWebImage的内存警告是如何处理的?
答:1> SDImageCache在实例化的时候会注册监听应用程序通知
2>一旦接收到内存警告,直接清理内存缓存
3>应用程序被终止前,清理过期磁盘缓存
4>应用程序退出到后台,在后台清理磁盘缓存
//清理磁盘缓存
- (void)clearMemory;
//清除硬盘缓存
- (void)clearDisk;
//清理硬盘缓存(超过时间的图片)
- (void)cleanDisk;