为了弄清楚如何修复这段代码,我一直在敲我的脑袋。基本上我有一段代码,它接受一个字符串 cityName 并将它的纬度和经度存储在一个全局变量中,然后在另一个函数中调用它。显然由于异步调用,我无法做到这一点,并且经度和纬度的值为零。
func findCityCoordinates(cityName: String) {
var geocoder = CLGeocoder()
geocoder.geocodeAddressString(cityName, completionHandler: {(placemarks: [AnyObject]!, error: NSError!) -> Void in
if let placemark = placemarks?[0] as? CLPlacemark {
self.cityLatitude = placemark.location.coordinate.latitude //Returns nil
self.cityLongitude = placemark.location.coordinate.longitude //Returns nil
}
})
}
我也一直在尝试解决完成处理程序,但我不知道如何实现它并在函数中调用它。我会很感激一些帮助。