NSURLSession,多个数据任务,completionHandler

时间:2015-10-11 00:24:13

标签: nsurlsession completionhandler

我想使用NSURLSessiondataTaskWithURL:completionHandler:将4个不同的网址下载到NSData个对象中。我知道我可以致电:

[session dataTaskWithURL completionHandler:^(NSData* data, NSURLResponse* response, NSError* error) {
    // handler
}];

将这些内容添加到会话后,我知道我可以使用[task resume]启动它们。有没有办法让会话简单地开始我添加的所有任务?

但是,如果所有四个都完成(有错误或其他),我怎么能得到通知?我是否需要保留某种线程安全的字典来跟踪每个任务的状态?

我的目的是,一旦下载了这些内容,我就需要启动一个计时器,以便将来可以再次下载相同的四个URL。

1 个答案:

答案 0 :(得分:1)

  1. 不,一次无法启动多项任务。

  2. 是的,您需要使用数据任务作为关键字来保存字典以存储响应。为了安全起见,在主线程上执行所有修改和访问。

  3. 您也可以考虑调度组,如this question

    中所述