Swift comment faire une fonction à exécuter après avoir rempli une autre fonction
J'ai écrit deux Swift fonctions (juste un quiz à choix multiples app)
func createQuestions() //this goes to Parse, and fetches the questions data that are going to question the users and store them into local arrays
func newQuestion() // this also fetches some other data (for example, some incorrect choices) from Parse and read local variables and finally set the labels to correctly display to the users
Je veux en ViewDidLoad
, exécutez d'abord createQuestion()
, après qu'il soit complètement terminé puis exécuter newQuestion()
. Sinon, le newQuestion()
a quelques problèmes lors de la lecture de variables locales qui étaient censés être récupérés. Comment vais-je gérer cela?
EDIT: j'ai appris à utiliser la fermeture! Encore une question de suivi. Je suis l'aide d'une boucle for pour créer des questions. Cependant, le problème est que la boucle ne s'exécute pas correctement. Alors mon chèque en cas de récidive de la fonction (vocabTestedIndices) échoue et il serait apporter deux questions identiques. Je veux que la boucle for pour exécuter un par un, les questions créé ne sera pas superposées.
le code de l'image
- Vous devez exécuter
newQuestion
dans la réalisation de bloc à partir de votre première Analyser la requête
Vous devez vous connecter pour publier un commentaire.
essayer
Ce sujet swift
defer
de ce post?Depuis que vous êtes nouveau. Je ne sais pas si vous le savez fermetures ou pas si j'ai placé la solution la plus simple pour vous. (la solution est similaire à @Paulw11 a commenté sur votre question)
appelez simplement dans le viewDidLoad:
La tâche que vous souhaitez effectuer dépend de l'analyse de la réponse:
seulement après que la réponse arrive, vous voulez appeler newQuestion fonction.
Ici est l'analyse de la Documentation pour swift: https://www.parse.com/docs/ios/guide#objects-retrieving-objects
La fermeture va vous aider à obtenir cette fonctionnalité.
Créez votre createQuestions fonction comme ci-dessous.
viewDidLoad
Nouvelle Question De Méthode