AFNetWorking
組成
- 底部:會話模塊(NSURLSession)、網(wǎng)絡(luò)監(jiān)聽模塊(AFSecurityPolicy)、網(wǎng)絡(luò)安全模塊(AFSecurityPolicy)
- 中間層: 請求序列化、響應(yīng)序列化
- 上層:UIKit集成模塊
類的關(guān)系圖
- 主要類AFURLSessionManager
- 繼承自AFHTTPSessionManager(我們平時常用的類):包含兩個模塊,AFURLRequestSerialzation、AFURLResponseSerialzation
- 組成部分:NSURLSession(網(wǎng)絡(luò)會話部分)、AFSecurityPolicy(網(wǎng)絡(luò)安全證書驗證、公鑰驗證)、AFSecurityPolicy(網(wǎng)絡(luò)環(huán)境驗證)
主要功能
- 創(chuàng)建和管理NSURLSession、NSURLSessionTask,創(chuàng)建網(wǎng)絡(luò)請求
- 實現(xiàn)NSURLSessionDelegate等協(xié)議的代理方法,處理網(wǎng)絡(luò)請求過程中的問題,重定向,驗證挑戰(zhàn)等網(wǎng)絡(luò)部分
- 引入AFSecurityPolicy保證請求安全, 證書的校驗,公鑰的驗證
- 引入AFNetworkReachabilityManager監(jiān)控網(wǎng)絡(luò)狀態(tài)
SDWebImageView
異步下載并支持緩存的框架
框架組成
- UIImageView + WebCache
- SDWebImageManager:核心類
- SDImageCache:內(nèi)存緩存、磁盤緩存
- SDWebImageDownLoader:網(wǎng)絡(luò)圖片下載器
加載圖片流程
- 根據(jù)圖片key值,在內(nèi)存中查找
- 內(nèi)存中未找到,進行磁盤查找
- 磁盤未找到,進行網(wǎng)絡(luò)下載
Reactive Cocoa
函數(shù)響應(yīng)式編程
信號和訂閱
- 信號:信號代表一連串的狀態(tài)
- 訂閱:訂閱信號,通過RACSubscriber來實現(xiàn)的,實際上就是作為一個成員變量對其block進行持有,調(diào)用subscribe時,來通過sendnext來執(zhí)行這個方法
調(diào)用流程
RACSignal -> subscribeNext -> RACSubscriber -> sendNext -> sendCompleted -> end
底層原理
initialize-RACSubscriber,此時我們持有了一個成員變量,這個成員變量實際上時didSubscribe的一個block,調(diào)用RACSubscriber方法時,就是調(diào)用這個block
AsyncDisplayKit
提升iOS界面渲染性能
主要處理的問題
- Layout:文本寬高計算、視圖布局計算
- Rendering:文本渲染、圖形解碼、圖形繪制
- UIKit Objects:對象創(chuàng)建、對象調(diào)整、對象銷毀
ASDK的實現(xiàn)原理
封裝一個NSNode節(jié)點,我們對于視圖的一些屬性設(shè)置和處理在nsnode中執(zhí)行,這部分可以放到后臺中去執(zhí)行,在RunLoop將要結(jié)束時,通過beforeWaiting通知,ASDK執(zhí)行該loop內(nèi)提交的所有任務(wù),來從全局容器中提取,一次性設(shè)置給UIView