gpt4 book ai didi

ios - NSURLSessionDownloadTask - 串行下载多个文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:18:01 26 4
gpt4 key购买 nike

使用 NSURLSessionDownloadTask 连续下载文件列表的最佳做法是什么?

例如,是否最好在上一次下载完成后开始一个新的 NSURLSession

- (void)startDownloadWithRequest:(NSURLRequest *)request{

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

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

}

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

- (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 连续下载文件的替代方法。

最佳答案

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

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

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

关于ios - NSURLSessionDownloadTask - 串行下载多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28269897/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com