常用框架

AFNetworking

AFNetworking主要是对NSURLSession的封装, 其中主要有以下类:

会话:
AFURLSessionManager(核心类),创建和管理NSURLSession、NSURLSessionTask,实现NSURLSessionDelegate等协议
AFHTTPSessionManager (AFURLSessionManager的子类)
网络监听模块:AFNetworkReachabilityManager
网络安全模块:AFSecurityPolicy,主要是针对 HTTPS 服务
请求序列化:AFURLRequestSerialization
响应序列化:AFURLResponseSerialization
UIKit集成模块:UIButton、UIImageView的分类等

SDWebImage

描述下SDWebImage里面给UIImageView加载图片的逻辑
SDWebImage 中为 UIImageView 提供了一个分类UIImageView+WebCache.h, 这个分类中有一个最常用的接口sd_setImageWithURL:placeholderImage:,会在真实图片出现前会先显示占位图片,当真实图片被加载出来后再替换占位图片。

加载图片的过程大致如下:
1.首先会在 SDWebImageCache 中寻找图片是否有对应的缓存, 它会以url 作为数据的索引先在内存中寻找是否有对应的缓存
2.如果缓存未找到就会利用通过MD5处理过的key来继续在磁盘中查询对应的数据, 如果找到了, 就会把磁盘中的数据加载到内存中,并将图片显示出来
3.如果在内存和磁盘缓存中都没有找到,就会向远程服务器发送请求,开始下载图片
4.下载后的图片会加入缓存中,并写入磁盘中
5.整个获取图片的过程都是在子线程中执行,获取到图片后回到主线程将图片显示出来

你可能感兴趣的:(常用框架)