框架組成
AFNetWorking是著名的網絡通信框架,今天,我們就一起分析一下該框架的組成。
將AF下載導入工程後,下面是其包結構:
除去Support Files,可以看到AF分爲如下5個功能模塊:
- 網絡通信模塊(NSURLSession)
- 網絡狀態監聽模塊(Reachability)
- 網絡通信安全策略模塊(Security)
- 網絡通信信息序列化/反序列化模塊(Serialization)
- 對於iOS UIKit庫的擴展(UIKit)
其核心當然是網絡通信模塊,其餘的四個模塊,均是爲了配合網絡通信或對已有UIKit的一個擴展及工具包。
這五個模塊所對應的類的結構關係圖如下所示:
可以看到,AF的核心是AFURLSessionManager類,AFHTTPSessionManager繼承於AFURLSessionManager, 針對HTTP協議傳輸做了特化。而AFURLResponseSerialization, AFSecurityPolicy, AFNetworkReachabilityManager則被AFURLSessionManager所用。
其次,還可以看到一個單獨的UIKit包提供了對iOS UIKit類庫的擴展與工具類。
那麼,我們的源碼分析之路,也按照這種分類,依次爲
- 網絡通信核心AFURLSessionManager分析
- HTTP網絡通信核心AFHTTPSessionManager分析
- 網絡數據的裝配解析員AFURLResponseSerialization分析
- 網絡狀態監測員AFNetworkReachabilityManager分析
- 網絡數據的組裝與解AFURLRequestSerialization/AFURLResponseSerialization 分析
- 網絡安全策略 AFSecurityPolicy分析
- AF提供的工具包AF UIKit的功能類分析