我无法找到一种方法来返回一个变量,以便在GCD队列中的同步操作之外使用。我想要基本上运行以下内容:
let queue = DispatchQueue(label: "com.yourapp.queue", qos: DispatchQoS.userInitiated)
queue.sync(userLocation: CLLocation) -> CLLocation {
let userLocation = mapView.myLocation
return userLocation
}
我知道这不是语法的工作方式,但是关于它如何工作的任何想法?
答案 0 :(得分:0)
将userLocation
移到queue.sync
功能之外。
e.g。
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
。但我希望你能得到它的主旨。