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