我想使用NSURLSession
和dataTaskWithURL:completionHandler:
将4个不同的网址下载到NSData
个对象中。我知道我可以致电:
[session dataTaskWithURL completionHandler:^(NSData* data, NSURLResponse* response, NSError* error) {
// handler
}];
将这些内容添加到会话后,我知道我可以使用[task resume]
启动它们。有没有办法让会话简单地开始我添加的所有任务?
但是,如果所有四个都完成(有错误或其他),我怎么能得到通知?我是否需要保留某种线程安全的字典来跟踪每个任务的状态?
我的目的是,一旦下载了这些内容,我就需要启动一个计时器,以便将来可以再次下载相同的四个URL。
答案 0 :(得分:1)
不,一次无法启动多项任务。
是的,您需要使用数据任务作为关键字来保存字典以存储响应。为了安全起见,在主线程上执行所有修改和访问。
您也可以考虑调度组,如this question。
中所述