2016-11-27 1 views
-1

Je n'arrive pas à trouver le moyen de renvoyer une variable à utiliser en dehors de l'opération de synchronisation dans une file d'attente GCD. Je veux quelque chose à courir essentiellement les éléments suivants:Renvoi d'une variable à utiliser ultérieurement dans une opération GCD Sync - Swift 3

let queue = DispatchQueue(label: "com.yourapp.queue", qos: DispatchQoS.userInitiated) 

queue.sync(userLocation: CLLocation) -> CLLocation { 
    let userLocation = mapView.myLocation 

    return userLocation 
} 

je sais que ce n'est pas le fonctionnement de la syntaxe, mais une idée sur la façon dont cela fonctionnerait?

Répondre

0

Déplacez le userLocation en dehors de la fonction queue.sync.

par exemple.

var userLocation: CLLocation? 
queue.sync { 
    userLocation = mapView.myLocation 
} 

Autre possibilité:

var myUserLocation: CLLocation? 

func setLocation(userLocation: CLLocation) { 
    myUserLocation = userLocation 
} 

queue.sync { 
    self.setLocation(userLocation: mapView.myLocation) 
} 

Si vous souhaitez une réponse plus de détails si, je dois voir plus de votre code. par exemple. où est mapView? Comment voulez-vous utiliser le userLocation. Mais j'espère que vous en aurez l'essentiel.