首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过NSURLSessionDownloadTask下载多个文件

如何通过NSURLSessionDownloadTask下载多个文件
EN

Stack Overflow用户
提问于 2015-06-22 10:11:06
回答 1查看 1.1K关注 0票数 0

iOS 8,XCode 6.3.2

我想按顺序下载多个文件。在Push notification发布之后,应用程序将通过NSURLSessionDownloadTask启动BackgroudDownload。在第一个BackgroudDownload进程完成之后,APP希望启动第二个进程,但是第二个BackgroudDownload进程没有启动。

代码如下

//此方法由推送通知调用。

代码语言:javascript
复制
- (void)startBackgroundDownload
{
    // Session
    NSURLSessionConfiguration *configFirst = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"com.test.first"];
    sessionFirst = [NSURLSession sessionWithConfiguration:configFirst delegate:self delegateQueue:nil];

    NSURLSessionConfiguration *configSecond = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"com.test.second"];
    sessionSecond = [NSURLSession sessionWithConfiguration:configSecond delegate:self delegateQueue:nil];

    // Start First Download
    NSURLRequest *requestFirst = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://xxxxx/first.zip"]];
    NSURLSessionDownloadTask *downloadTaskFirst = [sessionFirst downloadTaskWithRequest:requestFirst];
    [downloadTaskFirst resume];
}

// Finish下载

代码语言:javascript
复制
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location
{
    if (session == sessionFirst) {
        NSURLRequest *requestSecond = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://xxxxx/second.zip"
        NSURLSessionDownloadTask *downloadTaskSecond = [sessionSecond downloadTaskWithRequest:requestSecond];
        [downloadTaskSecond resume];
    } else if (session == sessionSecond) {
        NSLog(@"all finish");
    }
}

第一个是成功的,第二个是失败的(不是开始)。我需要建议去追求事业。谢谢你能提供的任何帮助。

EN

回答 1

Stack Overflow用户

发布于 2015-06-22 10:20:03

下载任务分为如下完美部分。

  1. 首先,创建一个希望下载的zip文件数组。
  2. 初始化会话对象
  3. 编写一个可以获取URL和"startDownloading“的方法
  4. 在委托方法(成功下载)中,调用解压缩文件。删除zip数组的第一个对象,并再次调用"startDownloading“方法及其调用,直到数组计数大于零为止。

我希望你能理解我想在这里解释的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30977295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档