關鍵詞:『NSURLSession』、『AFNetworking』、『Objective-C 非同步下載』、『Objective-C 多執行緒』
苹果官方提供的原生网络请求类包括:NSURLConnection 和 NSURLSession。
其中,NSURLConnection 从 iOS9 开始不被官方推荐使用了,而推荐使用从 iOS7 开始出现的NSURLSession。
現在大家都在用 AFNetWorking 作為首選網路請求框架,之前的 ASIHTTPRequest 是基於NSURLConnection 類實現的,早期的 AFNetWorking 也是基於 NSURLConnection 實現,後來iOS9 之後已經放棄了 NSURLConnection,開始使用 iOS 7 之後推出的 NSURLSession,本著追根溯源的原則,首先學習一下 NSURLSession 的實現網路請求,然後再去學習 AFNetWorking。
下面兩個超連結,一篇是簡體字,另一篇是繁體字,
相同的程式碼,但是兩篇的程式碼各有漏掉一些東西... 交互參照吧
GCD 多執行緒的說明與應用:
摘要如下,其餘詳閱參考資料:
GCD (Grand Central Dispatch) 是 Apple 將複雜且不易使用的 Thread 操作方式簡化過的 API,雖然使用起來比起傳統的 thread 會有些限制,但整體來說使用起來輕鬆許多也較安全。 總而言之,GCD為多執行緒的運用,其作用在於可將單一任務拆成多個小任務同時執行,亦或者同時執行多個任務,目的在於縮短執行任務的時間,而最重要的是,要確保不要佔用主執行緒而影響到使用者的體驗。
POST 和 GET:
相同点:都能给服务器传送数据
不同点:
1.给服务器的传输数据的方式
GET:通过网址字符串
POST:通过data
2.传输的数据大小:
GET:网址字符串最多255个
POST:使用 NSData,容量超过 1G
3.安全性
GET:所有传输的数据都显示在网址栏中,相当于明文,直接可见
POST:数据被转成 NSDate (二进制数据)