Возвращаем переменную из обработчика завершения, который возвращает только void
Я пытаюсь вернуть координаты из метода iOS geocodeAddressString, который использует обработчик завершения возврата void. Мне нужно иметь возможность использовать координаты вне обработчика завершения позже. Я попытался назначить глобальную переменную из обработчика, но переменная остается нулевой. Любые мысли или советы будут с благодарностью.
class geoTools {
var coordinates:CLLocationCoordinate2D?
func getCoordinate(addressString : String) -> (CLLocationCoordinate2D) {
let geoCoder = CLGeocoder()
geoCoder.geocodeAddressString(addressString) { (placemarks, error) -> () in
let placemark = placemarks?.first
let lat = placemark?.location?.coordinate.latitude
let lon = placemark?.location?.coordinate.longitude
self.coordinates = placemark?.location?.coordinate
}
return coordinates!
}
}