Я хотел бы, чтобы цикл 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 и завершения всех сетевых запросов? Я не могу изменить функцию Наблюдать за SingleEventOfType, это часть SDK Firebase. Кроме того, я создам какое-то условие гонки, пытаясь получить доступ к dateArray из разных итераций цикла for (надеюсь, это имеет смысл)? Я читал о GCD и NSOperation, но я немного растерялся, так как это первое приложение, которое я создал.
Примечание: массив Locations - это массив, содержащий ключи, которые мне нужны для доступа в firebase. Также важно, чтобы сетевые запросы запускались асинхронно. Я просто хочу подождать, пока ВСЕ асинхронные запросы завершатся, прежде чем я передам dateArray следующему контроллеру представления.