gpt4 book ai didi

ios - CLGeoCoder 没有以正确的顺序附加地标

转载 作者:行者123 更新时间:2023-11-29 01:26:28 25 4
gpt4 key购买 nike

在我的 viewDidLoad 中,我有这个方法,可以将 Parse 中的位置转换为城市和州。唯一的问题是,大多数时候它以错误的顺序附加。另外,位置变量末尾的 .location 是一种自定义方法,可将 PFGeoPoint 转换为 CLLocation。

for post in posts {
let location = ((post["locations"] as! NSMutableArray)[0] as! PFGeoPoint).location

CLGeocoder().reverseGeocodeLocation(location()) { (placemarks, error) -> Void in
if error != nil {

print(error)

} else {

let p = CLPlacemark(placemark: placemarks![0])


let locationString = "\(p.locality!), \(p.administrativeArea!)"

self.locationStrings.append(locationString)

}

}
}

我相信这一切都是由于 CLGeoCoder 完成处理程序需要一段时间才能完全执行而发生的。我认为这可以通过在没有完成处理程序的情况下完成所有这些来解决,但我不确定如何做到这一点。谢谢!

最佳答案

反向地理编码需要异步完成以防止滞后。您可以使用位置字符串属性创建一个对象来保存您的帖子位置数据或一般的帖子数据。实例化 post 对象并将它们添加到数组中,然后遍历它们以检索位置字符串并将其设置在对象上。例如:

for postObject in postObjects {
CLGeocoder().reverseGeocodeLocation(postObject.location) { (placemarks, error) -> Void in
if error != nil {

print(error)

} else {

let p = CLPlacemark(placemark: placemarks![0])


postObject.locationString = "\(p.locality!), \(p.administrativeArea!)"

}

}
}

关于ios - CLGeoCoder 没有以正确的顺序附加地标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33943151/

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