J'essaye d'analyser les données de Firebase dans un tableau d'objets et, une fois terminé, d'afficher le texte du premier objet du tableau. Cependant, je ne peux pas trouver/trouver une solution pour arrêter le code avant la fin du téléchargement. Ainsi, il met à jour la fin de l'utilisateur à true, sans afficher le texte. Ceci est la fonction est, le téléchargement et annexant à un tableau fonctionne très bien, mais il passe à displayNextInSeries() avant qu'il ne soit terminé ...IOS - Analyse des objets de Firebase - Code en cours d'exécution avant que le téléchargement ne soit terminé
func parseSeries (ref: String) {
FIRDatabase.database().reference().child("library").child("series").child(ref).observeSingleEvent(of: .value, with: { (snapshot) in
if let snapshot = snapshot.children.allObjects as? [FIRDataSnapshot] {
for snap in snapshot {
print(snap)
if let pushSeriesDict = snap.value as? Dictionary<String, AnyObject> {
let key = snap.key
let push = PUSH_SERIES(pushKey: key, pushSeriesData: pushSeriesDict)
self.seriesArray.append(push)
}
}
}
})
print("\(ref) Series Count: \(self.seriesArray.count)")
displayNextInSeries()
}
L'écran suivant en fonction de la série voit le seriesArray.count = 0, donc il ne met pas à jour le texLbl:
func displayNextInSeries() {
if seriesProgress < seriesArray.count {
animateProgress(current: seriesProgress, total: seriesArray.count)
currentPUSH_SERIES = seriesArray[seriesProgress]
currentPUSH_SERIES.text = personaliseText(text: currentPUSH_SERIES.text)
textLbl.animateUpdate(currentPUSH_SERIES.text, oldText: previousText)
titleLbl.text = "\(currentPUSH_SERIES.title!)"
previousText = currentPUSH_SERIES.text
seriesProgress += 1
} else {
animateProgress(current: sessionProgress, total: sessionTarget)
titleLbl.text = ""
greetingPush()
seriesPlay = false
seriesProgress = 0
user.updateProgress(seriesName)
print(user.progress)
}
}
Je peux faire quelque chose de fondamentalement faux ici. Votre aide est très nécessaire et très appréciée! Merci, Matt
Accepter ceci comme réponse si elle a résolu votre problème:) Codage heureux – Dravidian
Merci D. J'ai juste eu besoin de déplacer la fonction displayNext. Merci d'avoir répondu :) –