【发布时间】:2020-04-15 13:23:51
【问题描述】:
您好,我想接收地址的坐标。我做了这个功能但不起作用。总是返回 0.0, 0.0
func getCoordinates(address: String)->(Double, Double){
DispatchQueue.main.async {
let geoCoder = CLGeocoder()
geoCoder.geocodeAddressString(address) { (placemarks, error) in
guard let placemarks = placemarks, let location = placemarks.first?.location else { return }
latitude = location.coordinate.latitude
longitude = location.coordinate.longitude
}
}
return (latitude ?? 0.0, longitude ?? 0.0)
}
【问题讨论】:
-
请对 Swift 中的同步/异步过程进行更多搜索。
return行总是在DispatchQueue.main.async块之前执行,这就是你总是失败的原因
标签: swift function clgeocoder