亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS網絡開發(2)使用NSURLConnection

發布時間:2020-06-11 08:09:22 來源:網絡 閱讀:293 作者:ymanmeng123 欄目:移動開發
  • NSURLConnection介紹

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

+ (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中獲取數據創建對象的方法,就屬于同步請求,其弊端是無法獲得應答對象。

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

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

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

     出參response:響應對象

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

     返回值:響應數據


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

     iOS網絡開發(2)使用NSURLConnection


同步請求的弊端:

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

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



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

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

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

如:使用GCD

     iOS網絡開發(2)使用NSURLConnection


  • 異步的網絡請求 — 發送異步請求方法

NSURLConnection提供了一個發送異步請求的方法

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

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

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


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

     iOS網絡開發(2)使用NSURLConnection


  • 異步的網絡請求 — 使用代理監聽請求過程

NSURLConnection對象包含一個代理屬性

     提供代理協議<NSURLConnectionDelegate><NSURLConnectionDataDelegate>

常用的代理方法:

// 接收到響應對象
- (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網絡開發(2)使用NSURLConnection


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

庄河市| 阳信县| 麻城市| 枝江市| 惠来县| 平原县| 多伦县| 林芝县| 华安县| 澄江县| 仙游县| 澄迈县| 南安市| 孟津县| 辽宁省| 会同县| 阳曲县| 颍上县| 张家港市| 万源市| 阳高县| 沛县| 汶上县| 贡嘎县| 贵阳市| 昌乐县| 昆山市| 包头市| 上林县| 清河县| 石阡县| 崇礼县| 文昌市| 喀喇| 禹城市| 且末县| 荥阳市| 琼结县| 正镶白旗| 延边| 沁水县|