AFNetWorking原理分析

1.結(jié)構(gòu)
會(huì)話管理器、請(qǐng)求序列化、響應(yīng)序列化、安全認(rèn)證模塊、

2.AFURLSessionManager
核心變量
NSURLSession
NSOperationQueue
NSArray <NSURLSessionTask *> 各種task
dispatch_group_t completionGroup

串行隊(duì)列:af_url_session_manager_creation_queue
并發(fā)隊(duì)列:url_session_manager_processing_queue
gourp組:url_session_manager_completion_group

存放任務(wù)對(duì)象:AFURLSessionManagerTaskDelegate : NSObject
類似ViewModel進(jìn)行任務(wù)代理的管理 。分發(fā)任務(wù)代理,其實(shí)調(diào)用這個(gè)viewModel處理方法。

獲取 af_resume和af_suspend:遍歷

self.session = [NSURLSession sessionWithConfiguration:self.sessionConfiguration delegate:self delegateQueue:self.operationQueue]; 代理 回調(diào)會(huì)在self.operationQueue,同步串行隊(duì)列,好處append data 不用加鎖。

回調(diào)->調(diào)用類AFURLSessionManagerTaskDelegate->調(diào)用完成,移除掉。并dispatch_asyc做數(shù)據(jù)解析,最后 dispatch group 隊(duì)列做回調(diào)

參考:
http://www.lxweimin.com/p/77cbf43fe80a

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 聲明:以下是對(duì)所看源碼和相關(guān)資料的整理 框架組成 AFNetworking作為開(kāi)發(fā)中使用最多的第三方網(wǎng)絡(luò)庫(kù),功能完...
    jinstar520閱讀 445評(píng)論 0 0
  • 0 AFNetWorking3框架組成 將AF下載導(dǎo)入工程后,下面是其包結(jié)構(gòu): 除去Support Files,可...
    Claire_wu閱讀 592評(píng)論 0 2
  • 為什么要用AFNetworking? 1、帶block形式, 內(nèi)部是任務(wù)隊(duì)列進(jìn)行下載 ,就是對(duì)operation的...
    知本集閱讀 826評(píng)論 0 2
  • 說(shuō)到AFNetwokring這個(gè)強(qiáng)大第三方網(wǎng)絡(luò)請(qǐng)求庫(kù),大家應(yīng)該都不陌生吧,ios開(kāi)發(fā)、mac開(kāi)發(fā)都經(jīng)常用,主要是他...
    塵峰的小孩閱讀 487評(píng)論 0 0
  • 概述 從上圖可以看出,AFNetwoking框架是一個(gè)比較簡(jiǎn)潔的框架,主要分了幾個(gè)部分: 1.->網(wǎng)絡(luò)通信模塊:N...
    彬至睢陽(yáng)閱讀 1,117評(píng)論 0 1