IOS异步下载

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

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

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

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

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

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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值