gpt4 book ai didi

swift - 为什么 CLGeoCoder 无法获取任何内容?

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

我编写了一个类,可以将位置反转为地理信息,如下所示:

import Foundation
import UIKit
import CoreLocation
public class Geocoder{
public static func Geocoder(latitudein:Double,longitudein:Double)->String
{
var address:String?="";
var geocoder = CLGeocoder.init();
var location:CLLocation=CLLocation.init(latitude: latitudein, longitude: longitudein);

// var placemarks:[CLPlacemark]=[CLPlacemark].init();
geocoder.reverseGeocodeLocation(location) { (placemarks, error) in
for p in placemarks!
{
if(p != nil)
{
//print(p);
// address?.append(p.country!);
// address?.append(p.subAdministrativeArea!);
address=p.name;
}
}

}
print(address);
return address!;
}
}

但是地址是nil,我尝试了p.country等很多参数,但还是返回nil,我想问一下为什么以及如何解决?

最佳答案

你可以试试

public static func Geocoder(latitudein:Double,longitudein:Double,completion:@escaping(_ address:String?) -> Void )
{

var geocoder = CLGeocoder.init();
var location:CLLocation=CLLocation.init(latitude: latitudein, longitude: longitudein);

geocoder.reverseGeocodeLocation(location) { (placemarks, error) in


if error != nil {
completion(nil)
return
}

for p in placemarks!
{
if(p != nil)
{
completion(p.name)
break
}
}

}

}

override func viewDidLoad() {
super.viewDidLoad()

VCName.Geocoder(latitudein: 20.555, longitudein: 30.777) { (address) in
if let ad = address {


}
}

}

关于swift - 为什么 CLGeoCoder 无法获取任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51245112/

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