使用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];
}然后,在委托中,完成后使用不同的请求再次调用-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串行下载文件的替代方案。
发布于 2015-02-02 09:30:28
如果要执行的任务在配置方面处于相同的规则下(例如超时、cookie和缓存策略等),则肯定不需要创建新的会话(和配置)对象
相反,这会适得其反,为什么要分配做完全相同事情的新对象呢?如果配置没有强制实施更严格的策略,您甚至可以通过NSUrlRequest覆盖会话配置的某些策略。
至于串行下载文件的最佳实践,您的设置看起来很可靠。
https://stackoverflow.com/questions/28269897
复制相似问题