首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSURLSessionDownloadTask -串行下载多个文件

NSURLSessionDownloadTask -串行下载多个文件
EN

Stack Overflow用户
提问于 2015-02-02 09:19:14
回答 1查看 1.5K关注 0票数 2

使用NSURLSessionDownloadTask串行下载文件列表的最佳实践是什么?

例如,在前一个下载完成后开始一个新的NSURLSession是最好的吗?

代码语言:javascript
复制
- (void)startDownloadWithRequest:(NSURLRequest *)request{

    NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil];

    NSURLSessionDownloadTask *downloadTask = [session downloadTaskWithRequest:request];
    [downloadTask resume];

}

然后,在委托中,完成后使用不同的请求再次调用-startDownload

代码语言:javascript
复制
- (void)URLSession:(NSURLSession *)session
      downloadTask:(NSURLSessionDownloadTask *)downloadTask
didFinishDownloadingToURL:(NSURL *)location{

    NSURL *url = [NSURL URLWithString:@"http://asdf.com/Hello_world.pdf"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    [self startDownload:request];

}

这种链接下载的方法是否会导致堆栈随着每次后续请求而增长,因为在前一次下载完成时会调用-startDownloadWithRequest

我已经搜索了SO和其他网站,但找不到用NSURLSessionDownloadTask串行下载文件的替代方案。

EN

回答 1

Stack Overflow用户

发布于 2015-02-02 09:30:28

如果要执行的任务在配置方面处于相同的规则下(例如超时、cookie和缓存策略等),则肯定不需要创建新的会话(和配置)对象

相反,这会适得其反,为什么要分配做完全相同事情的新对象呢?如果配置没有强制实施更严格的策略,您甚至可以通过NSUrlRequest覆盖会话配置的某些策略。

至于串行下载文件的最佳实践,您的设置看起来很可靠。

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

https://stackoverflow.com/questions/28269897

复制
相关文章

相似问题

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