IOS异步下载
2013-10-29 21:08
127 查看
异步下载支持应用程序在后台下载数据,在等待下载完成的过程中不会阻塞代码的运行,异步连接模型图如下:
对比上篇的同步下载会发现,异步下载发起请求后不会等待接收完成数据,从图中可以看到,异步下载也有三个步骤:
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;
对比上篇的同步下载会发现,异步下载发起请求后不会等待接收完成数据,从图中可以看到,异步下载也有三个步骤:
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;
相关文章推荐
- iOS异步下载下载进度条显示
- iOS异步请求下载图片
- 每个开发人员现在应该下载的十种必备工具
- CentOS-5.0下载地址
- [导入]周润发专集下载
- 高手急救!如何下载查看某个专利的全部申请资料?
- 《唐山大地震》高清下载,迅雷下载,在线观看!
- PyMongo下载及安装
- 一些新的 UI 图免费下载
- 登陆新浪微博&批量下载收藏内容[Python脚本实现]
- android4.1源码下载方法
- Maya 2013 下载以及破解教程
- 基于QT平台的手持媒体播放器项目实战视频教程下载
- Android实现下载图片并保存到SD卡中
- Chart Controls 简介与下载
- WCF HTTP 错误 404.3 - Not Found(由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。)
- easyui分页显示本地log4j文件+文件下载+打包下载
- Git快速入门三:从远程仓库下载