2016-11-27 39 views
-1

我無法找到一種方法來返回變量以供GCD隊列中的同步操作使用。我想要的東西基本上運行以下命令:返回一個變量,稍後在GCD同步操作中使用 - Swift 3

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

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

    return userLocation 
} 

我知道這不是多麼的語法著作,但如何做到這一點的工作任何想法?

回答

0

userLocation移到queue.sync函數的外部。

例如

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

或者:

var myUserLocation: CLLocation? 

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

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

如果您想更詳細的回答,雖然,我需要看到更多的代碼。例如mapView在哪裏?你想如何使用userLocation。但我希望你能明白這一點。