gpt4 book ai didi

用于反向地理编码的 Swift 完成处理程序

转载 作者:行者123 更新时间:2023-11-30 10:13:10 25 4
gpt4 key购买 nike

为了弄清楚如何修复这段代码,我一直在绞尽脑汁。基本上我有一段代码,它接受一个字符串 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
}
})
}

我也一直在尝试解决完成处理程序,但我不知道如何实现它并在函数中调用它。我希望得到一些帮助。

最佳答案

我能够为此使用调度异步。我在地理编码器上方声明了两个变量,在内部分配它们,并在完成后使用它们。

var lat:Float!
var long:Float!
let geocoder = CLGeocoder()
geocoder.geocodeAddressString(cityName, completionHandler: {(placemarks: [AnyObject]!, error: NSError!) -> Void in
if let placemark = placemarks?[0] as? CLPlacemark {
lat = Float(placemark.location.coordinate.latitude)
long = Float(placemark.location.coordinate.longitude)
}
dispatch_async(
dispatch_get_main_queue(), {
self.cityLatitude = lat
self.cityLongitude = long
})
})

关于用于反向地理编码的 Swift 完成处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31798843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com