iOS NSURLSession后台下载和断点续传

本文介绍了在iOS中使用NSURLSession进行后台下载和断点续传的实现步骤,包括设置backgroundSessionConfigurationWithIdentifier、实现相关代理方法、处理临时文件、复制到Documents目录以及添加暂停和恢复功能。详细讲解了代码逻辑,并展示了界面效果。
摘要由CSDN通过智能技术生成

前几天面试被人问到后台下载的问题,当时就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
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值