1. 程式人生 > >iOS總結-網路框架-AFNetworking原始碼解析(二)

iOS總結-網路框架-AFNetworking原始碼解析(二)

接上一篇,下面是有關生成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的方法

參考:https://www.jianshu.com/p/856f0e26279d