第三方库解析

AFNetworking

AF框架.png

主要类关系

类关系图.png

各个类的功能

AFURLSessionManager主要负责哪些工作?

  • 创建和管理NSURLSession,NSURLSessionTask。
  • 实现NSURLSessionDelegate等协议的代理方法
  • 引入AFSecurityPolicy保证请求安全
  • 引入AFNetworkReachabilityManager监控网络状态。

SDWebImage

架构简图:

sd架构图.png

加载流程

加载流程.png

ReactiveCocoa

RAC是否了解?

RAC是一个函数响应式编程的库,可以订阅一个信号

RACSignal

Signal.png

怎样理解信号?

RACSignal继承自RACStream

stream.png

信号代表一连串的状态

signal02.png

在状态改变时,对应的订阅者RACSubscriber就会收到通知执行响应的指令。

订阅

RACSubscriber

订阅过程.png
订阅原理.png

AsyncDisplayKit

提升iOS界面渲染性能的一个框架

主要处理哪些问题

  • Layout-解决布局的耗时运算(从主线程迁移到子线程,来减少主线程的时间)
    • 文本宽高计算
    • 视图布局计算
  • Rendering
    • 文本渲染
    • 图片解码
    • 图形绘制
  • UIKit对象的处理
    • 对象创建
    • 对象调整
    • 对象销毁

主要通过减轻主线程的压力,来把更多的事情挪到子线程去做,就挪到子线程去处理。

基本原理

asdk原理.png

针对ASNode的修改和提交,会对其进行封装并提交到一个全局容器当中;

ASDK也在RunLoop中注册一个Observer

当RunLoop进入休眠前,ASDK执行该Loop内提交的所有任务。

总结

AFNetworking的整体结构是怎样的?

SDWebimage框架是怎样加载图片的?

RAC的信号订阅是什么意思?

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

推荐阅读更多精彩内容