У меня есть в коде ViewController
var location = CLLocation()
DispatchQueue.global().sync {
let objLocationManager = clsLocationManager()
location = objLocationManager.findLocationByAddress(address: self.txtTo.stringValue)
}
lblToLatitude.stringValue = String(location.coordinate.latitude)
lblToLongitude.stringValue = String(location.coordinate.longitude)
, вызывающий метод findLocationByAddress, который реализован в отдельном классе clsLocationManager, как это
func findLocationByAddress(address: String) -> CLLocation {
let geoCoder = CLGeocoder()
var location = CLLocation()
geoCoder.geocodeAddressString(address, completionHandler: {(places, error) in
guard error == nil else { return }
location = places![0].location!
})
return location
}
Я пытаюсь обеспечить синхронизацию с помощью DispatchQueue.global ().что геокодирование выполняется перед передачей координат меткам lblToLatitude и lblToLongitude, но это не работает.Конечно, я мог бы выполнять геокодирование в коде ViewController, но мне интересно, как сохранить его в отдельном классе.