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