返回稍后在GCD同步操作中使用的变量 - Swift 3

时间:2016-11-27 21:04:21

标签: swift3 grand-central-dispatch

我无法找到一种方法来返回一个变量,以便在GCD队列中的同步操作之外使用。我想要基本上运行以下内容:

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

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

     return userLocation
}

我知道这不是语法的工作方式,但是关于它如何工作的任何想法?

1 个答案:

答案 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。但我希望你能得到它的主旨。