等待直到带有异步网络请求的swift for loop完成执行
我希望for in循环向Firebase发送一堆网络请求,然后在该方法完成执行后将数据传递给新的视图控制器。这是我的代码: var datesArray = [String: AnyObject]() for key in locationsArray { let ref = Firebase(url: "http://myfirebase.com/" + "\(key.0)") ref.observeSingleEventOfType(.Value, withBlock: { snapshot in datesArray["\(key.0)"] = snapshot.value }) } // Segue to new view controller here and pass datesArray once it is complete 我有几个问题。首先,如何等待for循环完成并且所有网络请求完成?我无法修改observeSingleEventOfType函数,它是firebase SDK的一部分。另外,我是否会尝试通过for循环的不同迭代(有意义的希望)访问datesArray来创建某种竞争条件?我一直在阅读有关GCD和NSOperation的文章,但由于这是我开发的第一个应用程序,我有点迷茫。 注意:Locations数组是包含我需要在firebase中访问的键的数组。同样,重要的是异步触发网络请求。我只想等待所有异步请求完成,然后再将datesArray传递给下一个视图控制器。