iOS開發異步下載

jopen 12年前發布 | 35K 次閱讀 IOS iOS開發 移動開發

異步下載支持應用程序在后臺下載數據,在等待下載完成的過程中不會阻塞代碼的運行,異步連接模型圖如下: iOS開發異步下載

對比上篇的同步下載會發現,異步下載發起請求后不會等待接收完成數據,從圖中可以看到,異步下載也有三個步驟:

1、客戶端向服務器發起請求、服務器端接收請求并解析http參數.

2、應用程序在后臺下載數據,在這個過程中不會阻塞客戶端運行(可以認為,打開一個下載工具,就不用管了,下載失敗或下載完成,會有回調)

3、數據接收完成,如NSURLConnection的異步下載

 iOS開發異步下載

NSURLConnection同步和異步唯一的不同就是NSURLConnection對象的創建方式、在initWithRequest: degate指定其代理方法時就開始下載,其代理方法能獲取整個下載過程,常用的代理方法有:

1、接收完HTTP協議頭,開始真正接手數據時候調用,一般在這個方法里初始化一些存儲數據的對象如NSMutableData;

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response

2、每接收一段數據就會調用此函數,一般在這把data加到NSMutableData對象上

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data

3、接收數據失敗時調用,并且中斷下載

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error 

4、最后,如果連接成功并下載,會調用,一般在這釋放一些alloc創建的內存

- (void)connectionDidFinishLoading:(NSURLConnection *)connection;

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!