Je voudrais qu'une boucle for in envoie un tas de requêtes réseau à Firebase, puis transmette les données à un nouveau contrôleur de vue une fois que la méthode a terminé son exécution. Voici mon code:
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
J'ai quelques inquiétudes. Tout d'abord, comment attendre que la boucle for soit terminée et que toutes les demandes réseau soient terminées? Je ne peux pas modifier la fonction observeSingleEventOfType, elle fait partie du SDK Firebase. De plus, vais-je créer une sorte de condition de concurrence en essayant d'accéder aux datesArray à partir de différentes itérations de la boucle for (j'espère que cela a du sens)? J'ai lu sur GCD et NSOperation mais je suis un peu perdu car c'est la première application que j'ai créée.
Remarque: le tableau Emplacements est un tableau contenant les clés auxquelles j'ai besoin d'accéder dans Firebase. En outre, il est important que les requêtes réseau soient déclenchées de manière asynchrone. Je veux juste attendre que TOUTES les demandes asynchrones soient terminées avant de transmettre le dateArray au contrôleur de vue suivant.