iOS總結-網路框架-AFNetworking原始碼解析(二)
阿新 • • 發佈:2018-12-19
接上一篇,下面是有關生成NSURLSessionDataTask。
這裡是為了適配ios8出現的多次建立session的問題。
這個方法算是af裡面最核心的內容了,通過這個方法建立AFURLSessionManagerTaskDelegate與AFURLSessionDelegate建立相互關係。
加鎖的原因是self.mutableTaskDelegatesKeyedByTaskIdentifier是可變的,執行緒不安全。
每個task都有一個delegate,每個task都回去監聽這些屬性,分別在各自的af代理內。
至此task處理完了。而開始呼叫系統的NSURLSessionDelegate/NSURLSessionTaskDelegate/NSURLSessionDataDelegate/NSURLSessionDownloadDelegate/NSURLSessionUploadDelegate的方法。具體方法,我在前面的NSURLSession的api已經有了說明。
有關NSURLSession的代理
NSURLSessionDataDelegate
NSURLSessionDownloadDelegate
AF delegate的方法