Comment attendre d'une fonction à la fin sur iOS/Swift avant le départ de la deuxième

J'ai pratiquement aux méthodes, qui sont appelés dans mon viewDidLoad. La première, on obtient de l'utilisateur, les préférences de recherche et enregistre les préférences de variables dans la partie supérieure. Après que j'ai envie d'accès et de travailler avec ces variables dans la seconde fonction. Mais maintenant, les variables sont toujours zéro lorsque je veux accéder à la seconde fonction.

Comment dois-je régler mon viewDidLoad, de sorte que la deuxième fonction n'est exécutée une fois et ma demande de données a été effectué avec succès?

var searchLocation = String()
var searchLocationCoordinates = [String:Double]()
var searchRange = Int()


override func viewDidLoad() {
    super.viewDidLoad()

    //Gets the user's search preference
    getTheSearchLocationAndRange()

    //Loads the data from the database
    loadDataFromDatabase()
}

J'ai lu des choses à ce jour avec dispatch_asynch ou gestionnaire d'achèvement. Peut-être que quelqu'un peut poster un bout de code qui je peux utiliser dans mon viewDidLoad et rend le travail?

  • Vous n'avez pas le dire, mais getThSearchLocationAndRange doit être asynchrone? Dans ce cas, vous ne devriez pas attendre, et faire de votre interface de l'accrocher. Au lieu de cela, vous pourriez faire la première prise de fonction fin de bloc en tant que paramètre et mettre la deuxième fonction que le bloc corps est une façon de le faire, il en existe d'autres.
  • Ok ouais je l'ai! Avez-vous un exemple de code qui montre à moi? Mais c'était une idée que j'ai vu dans d'autres posts avec le gestionnaire d'achèvement!
  • Est-il une fonction d'envoi en getTheSearchLocationAndRange?
  • Salut FredericP Pas il n'y a pas encore de.
  • Avez-vous essayé le code que j'ai posté dans ma réponse ?
InformationsquelleAutor Mattk90 | 2016-04-24