AFNetworking框架-详细解析
我相信學(xué)習(xí)iOS超過(guò)半年以上的同學(xué)們應(yīng)該都用過(guò)這個(gè)庫(kù),現(xiàn)在市場(chǎng)上目前大多數(shù)的app,不吹逼至少百分之98以上都用這個(gè)庫(kù),為什么這么火呢?它提供給大家的公共方法就是那么好嗎?大家都真的了解里面的實(shí)現(xiàn)原理和思想嗎?難道不想進(jìn)一步的知道和發(fā)掘內(nèi)在的東西嗎?
我也是學(xué)習(xí)iOS的,我相信只要是抱著以后將來(lái)不說(shuō)5年,3年之內(nèi)還想一直干iOS的朋友,應(yīng)該都想知道這個(gè)東西到底是什么!下面我們就來(lái)一一分析吧。
在github上面的stars也是居高不下的!
下面自己測(cè)試下:
一般用到最多的就是這些,那么這些是什么東西呢?
其實(shí)AFN中分為5個(gè)具體的模塊:
1 AFURLSessionManager/AFHTTPSessionManger:網(wǎng)絡(luò)通信模塊
2 Reachability : 網(wǎng)絡(luò)狀態(tài)監(jiān)聽(tīng)模塊
3 Security:網(wǎng)絡(luò)通信安全策略模塊
4 Serialization: 序列化和反序列化模塊
5 其實(shí)還有一個(gè)重大的模塊: UIKit: 對(duì)于iOS UIKit庫(kù)的擴(kuò)展
這里面的核心就是:1 網(wǎng)絡(luò)通信模塊?
這個(gè)AFURLSessionManager? 是圍繞著 NSURLSession 封裝的,其他的都是圍繞配合它使用的一個(gè)擴(kuò)展的工具包。
AFHTTPSessionManager 是繼承AFURLSessionManager ,一般的網(wǎng)絡(luò)請(qǐng)求都是用它
在AFURLSessionManager的初始化的方法中:
上面的部分代碼函數(shù)有點(diǎn)看不懂,接下來(lái)先看看它里面我們常用的網(wǎng)絡(luò)請(qǐng)求方法:
在這里可以清楚的看到
就直接跳進(jìn)去看看到底做了些什么東西
注意了這個(gè)方法做了兩件事:
1.用self.requestSerializer和各種參數(shù)去獲取了一個(gè)我們最終請(qǐng)求網(wǎng)絡(luò)需要的NSMutableURLRequest實(shí)例。
2調(diào)用另外一個(gè)方法dataTaskWithRequest去拿到我們最終需要的NSURLSessionDataTask實(shí)例,并且在完成的回調(diào)里,調(diào)用我們傳過(guò)來(lái)的成功和失敗的回調(diào)。
好了,接下來(lái)我們先來(lái)分析下剛才第一個(gè)requestSerializer 中的request的請(qǐng)求方法,看看它到底做了哪些事情?
總結(jié)
以上是生活随笔為你收集整理的AFNetworking框架-详细解析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MongoDB(课时30 $group)
- 下一篇: Xcode配置RunScript编译完自