iOS开发异步下载

异步下载支持应用程序在后台下载数据,在等待下载完成的过程当中不会阻塞代码的运行,异步链接模型图以下: 服务器

对比上篇的同步下载会发现,异步下载发起请求后不会等待接收完成数据,从图中能够看到,异步下载也有三个步骤: 异步

一、客户端向服务器发起请求、服务器端接收请求并解析http参数. 函数

二、应用程序在后台下载数据,在这个过程当中不会阻塞客户端运行(能够认为,打开一个下载工具,就不用管了,下载失败或下载完成,会有回调) 工具

三、数据接收完成,如NSURLConnection的异步下载 spa

NSURLConnection同步和异步惟一的不一样就是NSURLConnection对象的建立方式、在initWithRequest: degate指定其代理方法时就开始下载,其代理方法能获取整个下载过程,经常使用的代理方法有: 代理

一、接收完HTTP协议头,开始真正接手数据时候调用,通常在这个方法里初始化一些存储数据的对象如NSMutableData; 对象

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

二、每接收一段数据就会调用此函数,通常在这把data加到NSMutableData对象上 同步

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

三、接收数据失败时调用,而且中断下载

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

四、最后,若是链接成功并下载,会调用,通常在这释放一些alloc建立的内存

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

相关文章
相关标签/搜索