iOS NSURLSession后台下载和断点续传

前几天面试被人问到后台下载的问题,当时就GG了,之前写Andriod的时候,用service写过,但是iOS没有做过这方面的。回去后查了一些资料,就有了这篇博文。

NSURLSession出来之后,我们可以很容易实现后台下载这种任务,简单使用backgroundSessionConfigurationWithIdentifier:就OK了。
下面讲解如何实现:

首先让我们在ViewController的类拓展里添加如下代码:

@interface ViewController ()<NSURLSessionDelegate,NSURLSessionDownloadDelegate,NSURLSessionTaskDelegate>

@property (nonatomic,strong) NSURLSession *session;

@property (nonatomic,strong) NSURLSessionDownloadTask *task;

@end

我们在里面声明里NSURLSession和NSURLSessionDownTask的属性,还实现了NSURLSessionDelegate,NSURLSessionDownloadDelegate,NSURLSessionTaskDelegate这三个必须实现的代理。

接着我们去实现下载的方法:


- (void)downloadBackground
{
    NSURLSessionConfiguration *config = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"download"];
    //系统根据当前性能自动处理后台任务的优先级
    config.discretionary = YES;

    _session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil];

    //下面两个是不同的文件,一个是一张图片,一个是微博,大家可以选择不同的网址去实验
    // http://farm3.staticflickr.com/2846/9823925914_78cd653ac9_b_d.jpg
    // http://dlsw.baidu.com/sw-search-sp/soft/3f/12289/Weibo.4.5.3.37575common_wbupdate.1423811415.exe

    NSURL *url = [NSURL URLWithString:@"http://dlsw.baidu.com/sw-search-sp/soft/3f/12289/Weibo.4.5.3.37575common_wbupdate.1423811415.exe"];

    NSURLRequest *request = [NSURLRequest re
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值