使用 NSURLSessionDownloadTask 串行下载文件列表的最佳做法是什么?
例如,是否最好在上一次下载完成后开始一个新的NSURLSession ?
- (void)startDownloadWithRequestNSURLRequest *)request{
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil];
NSURLSessionDownloadTask *downloadTask = [session downloadTaskWithRequest:request];
[downloadTask resume];
}
然后在委托(delegate)中完成调用 -startDownload 再次使用不同的请求。
- (void)URLSessionNSURLSession *)session
downloadTaskNSURLSessionDownloadTask *)downloadTask
didFinishDownloadingToURLNSURL *)location{
NSURL *url = [NSURL URLWithString"http://asdf.com/Hello_world.pdf"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[self startDownload:request];
}
这种链接下载的方法是否会导致堆栈随着上一次下载完成后调用 -startDownloadWithRequest 后的每个后续请求而增长?
我搜索了 SO 和其他网站,但找不到使用 NSURLSessionDownloadTask 串行下载文件的替代方法。
Best Answer-推荐答案 strong>
如果要执行的任务在配置方面的规则相同,则当然不需要创建新的 session (和配置)对象,例如超时、cookie 和缓存策略等
相反,这会适得其反,你为什么要分配做完全相同的事情的新对象?如果配置没有施加更严格的策略,您甚至可以通过 NSUrlRequest 覆盖 session 配置的某些策略。
关于串行下载文件的最佳做法,您的设置看起来很可靠。
关于ios - NSURLSessionDownloadTask - 串行下载多个文件,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/28269897/
|