Возвращаем переменную из обработчика завершения, который возвращает только 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!
    }
}

0 ответов

Другие вопросы по тегам