第三方框架

AFNetWorking

组成

  • 底部:会话模块(NSURLSession)、网络监听模块(AFSecurityPolicy)、网络安全模块(AFSecurityPolicy)
  • 中间层: 请求序列化、响应序列化
  • 上层:UIKit集成模块

类的关系图

  • 主要类AFURLSessionManager
  • 继承自AFHTTPSessionManager(我们平时常用的类):包含两个模块,AFURLRequestSerialzation、AFURLResponseSerialzation
  • 组成部分:NSURLSession(网络会话部分)、AFSecurityPolicy(网络安全证书验证、公钥验证)、AFSecurityPolicy(网络环境验证)

主要功能

  • 创建和管理NSURLSession、NSURLSessionTask,创建网络请求
  • 实现NSURLSessionDelegate等协议的代理方法,处理网络请求过程中的问题,重定向,验证挑战等网络部分
  • 引入AFSecurityPolicy保证请求安全, 证书的校验,公钥的验证
  • 引入AFNetworkReachabilityManager监控网络状态

SDWebImageView

异步下载并支持缓存的框架

框架组成

  • UIImageView + WebCache
  • SDWebImageManager:核心类
  • SDImageCache:内存缓存、磁盘缓存
  • SDWebImageDownLoader:网络图片下载器

加载图片流程

  • 根据图片key值,在内存中查找
  • 内存中未找到,进行磁盘查找
  • 磁盘未找到,进行网络下载

Reactive Cocoa

函数响应式编程

信号和订阅

  • 信号:信号代表一连串的状态
  • 订阅:订阅信号,通过RACSubscriber来实现的,实际上就是作为一个成员变量对其block进行持有,调用subscribe时,来通过sendnext来执行这个方法

调用流程

RACSignal -> subscribeNext -> RACSubscriber -> sendNext -> sendCompleted -> end

底层原理

initialize-RACSubscriber,此时我们持有了一个成员变量,这个成员变量实际上时didSubscribe的一个block,调用RACSubscriber方法时,就是调用这个block

AsyncDisplayKit

提升iOS界面渲染性能

主要处理的问题

  • Layout:文本宽高计算、视图布局计算
  • Rendering:文本渲染、图形解码、图形绘制
  • UIKit Objects:对象创建、对象调整、对象销毁

ASDK的实现原理

封装一个NSNode节点,我们对于视图的一些属性设置和处理在nsnode中执行,这部分可以放到后台中去执行,在RunLoop将要结束时,通过beforeWaiting通知,ASDK执行该loop内提交的所有任务,来从全局容器中提取,一次性设置给UIView

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容