【问题标题】:NSURLSession, multiple data tasks, completionHandlerNSURLSession,多数据任务,completionHandler
【发布时间】:2015-10-11 00:24:13
【问题描述】:

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

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

一旦将这些添加到会话中,我知道我可以使用[task resume] 开始它们。有什么方法可以让会话简单地启动我添加到其中的所有任务?

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

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

【问题讨论】:

    标签: nsurlsession completionhandler


    【解决方案1】:
    1. 不,无法同时启动多个任务。

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

    您也可以考虑使用调度组,如this question 中所述。

    【讨论】:

      猜你喜欢
      • 2014-03-22
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多