真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

iOS網絡開發(fā)(2)使用NSURLConnection

  • NSURLConnection介紹

    成都創(chuàng)新互聯成立與2013年,先為海曙等服務建站,海曙等地企業(yè),進行企業(yè)商務咨詢服務。為海曙企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

NSURLConnection可以非常便捷的發(fā)送同步或異步網絡請求

+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error
+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse *response, NSData *data, NSError *connectionError))handler

    出于各方面的考慮,蘋果在iOS9.0開始棄用NSURLConnection,而是用NSURLSession代替。

  • 同步的網絡請求

NSData數據類,從URL中獲取數據創(chuàng)建對象的方法,就屬于同步請求,其弊端是無法獲得應答對象。

NSURLConnection提供類方法,快速發(fā)送一個異步請求

+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error

     入參request:請求對象(url、請求類型、請求參數)

     出參response:響應對象

     出參error:錯誤對象(如果出錯的話)

     返回值:響應數據

如:請求獲取一個圖片資源

     iOS網絡開發(fā)(2)使用NSURLConnection

同步請求的弊端:

     請求過程耗時,會使當前線程阻塞,無法進行其他操作

     特別是在主線程中調用時,此過程中App將無法進行任何UI操作。

  • 異步的網絡請求 — 與多線程配合

即,將同步請求的操作放在子線程中執(zhí)行

     需要注意的是:子線程不能更新UI,更新UI操作需要回到主線程中完成

如:使用GCD

     iOS網絡開發(fā)(2)使用NSURLConnection

  • 異步的網絡請求 — 發(fā)送異步請求方法

NSURLConnection提供了一個發(fā)送異步請求的方法

+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse *response, NSData *data, NSError *connectionError))handler

    異步操作,當前線程并不等待請求過程的完成,故不能通過參數或返回值獲得結果

     異步操作獲得結果的操作通常有幾種做法:代理、通知、block

該操作使用的是block方式,block中的參數通常是獲得結果(響應對象、響應數據、錯誤對象)

     iOS網絡開發(fā)(2)使用NSURLConnection

  • 異步的網絡請求 — 使用代理監(jiān)聽請求過程

NSURLConnection對象包含一個代理屬性

     提供代理協議

常用的代理方法:

// 接收到響應對象
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
// 收到部分或全部數據
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
// 完成響應數據的接收
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
// 請求失敗
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError*)error

如:

     iOS網絡開發(fā)(2)使用NSURLConnection


分享文章:iOS網絡開發(fā)(2)使用NSURLConnection
瀏覽路徑:http://weahome.cn/article/piepjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部