首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个下载NSURLSession

多个下载NSURLSession
EN

Stack Overflow用户
提问于 2013-12-10 05:46:54
回答 1查看 685关注 0票数 1

我有一个使用NSURLSession从url下载视频的程序,但我不能同时下载多个视频。我该怎么做呢?如何管理多个同时下载?

代码语言:javascript
复制
    NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration    defaultSessionConfiguration];

    NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil];

    NSURLSessionDownloadTask *getVideo = [session downloadTaskWithURL:fileURL
                                                    completionHandler:^(NSURL *location,
                                                                        NSURLResponse *response,
                                                                        NSError *error) {
                                                        // 2
                                                        receivedData = [NSData dataWithContentsOfURL:location];
                                                        dispatch_async(dispatch_get_main_queue(), ^{
                                                            // do stuff with image
                                                             NSLog(@"%s receiveData:%d",__FUNCTION__,[receivedData length]);
                                                        });
                                                    }];
    [getVideo resume];
EN

回答 1

Stack Overflow用户

发布于 2016-05-16 07:18:57

从上面提供的代码可以看出,您没有使用NSURLSessionConfiguration类的任何属性来实现更好的下载性能。

首先,我建议使用您自己的委托队列。如果不提供队列,则会话将为所有委托和完成处理程序调用创建一个串行操作队列。有关详细信息,请参阅NSURLSession Class Reference document的“创建会话”部分。您可以查看NSOperationQueue的以下属性来帮助提高性能;

代码语言:javascript
复制
qualityOfService
maxConcurrentOperationCount

接下来,我将查看可能会有所帮助的NSURLSessionConfiguration属性。

代码语言:javascript
复制
HTTPMaximumConnectionsPerHost
HTTPShouldUsePipelining

最后,您应该查看“使用自定义委托的URL会话的生命周期”一节。您应该确认是使用NSURLSessionTaskDelegateNSURLSessionDownloadTaskDelegate的委托方法,还是仅使用完成处理程序。

您需要花费更多的时间来配置NSURLSession以支持您想要做的工作。

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

https://stackoverflow.com/questions/20481487

复制
相关文章

相似问题

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