使用 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
串行下载文件的替代方法。
如果要执行的任务在配置方面的规则相同,则当然不需要创建新的 session (和配置)对象,例如超时、cookie 和缓存策略等
相反,这会适得其反,你为什么要分配做完全相同的事情的新对象?如果配置没有施加更严格的策略,您甚至可以通过 NSUrlRequest 覆盖 session 配置的某些策略。
关于串行下载文件的最佳做法,您的设置看起来很可靠。
关于ios - NSURLSessionDownloadTask - 串行下载多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28269897/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |