gpt4 book ai didi

ios - CLGeocoder reverseGeocodeLocation 返回 'kCLErrorDomain error 9'

转载 作者:技术小花猫 更新时间:2023-10-29 10:34:34 26 4
gpt4 key购买 nike

我正在根据这篇文章开发具有反向地理编码功能的 iOS 应用程序:geocoding tutorial

但是当我在模拟器上进行这样的测试时,我得到“kCLErrorDomain 错误 9”。我搜索了很多,只有错误 0 或 1 而不是 9。

这是我在 viewDidLoad 中的代码:

self.locationManager = [[CLLocationManager alloc]init];
self.locationManager.delegate = self;
self.locationManager.distanceFilter = 80.0;
[self.locationManager startUpdatingLocation];

CLGeocoder *geocoder = [[[CLGeocoder alloc] init] autorelease];
[geocoder reverseGeocodeLocation:self.locationManager.location
completionHandler:^(NSArray *placemarks, NSError *error) {
NSLog(@"reverseGeocodeLocation:completionHandler: Completion Handler called!");

if (error){
NSLog(@"Geocode failed with error: %@", error);
return;

}

if(placemarks && placemarks.count > 0)

{
//do something
CLPlacemark *topResult = [placemarks objectAtIndex:0];
NSString *addressTxt = [NSString stringWithFormat:@"%@ %@,%@ %@",
[topResult subThoroughfare],[topResult thoroughfare],
[topResult locality], [topResult administrativeArea]];
NSLog(@"%@",addressTxt);
}
}];

非常感谢。

最佳答案

核心位置错误代码是 documented here .

代码值 8、9 和 10 是:

kCLErrorGeocodeFoundNoResult,
kCLErrorGeocodeFoundPartialResult,
kCLErrorGeocodeCanceled

根据显示的代码,出现错误 8 的最可能原因是它在调用 startUpdatingLocation 后立即尝试使用 location,此时它可能仍然为 nil

获取当前位置通常需要几秒钟,并且很可能在此之前为 nil(导致地理编码错误 8 或 kCLErrorGeocodeFoundNoResult)。我不确定“FoundPartialResult”错误代码 9 的含义,但 Apple 的 GeocoderDemo 示例应用程序以相同的方式处理这两种情况(作为“无结果”)。

尝试将地理编码代码(startUpdatingLocation 调用之后的所有代码)移动到委托(delegate)方法 locationManager:didUpdateToLocation:fromLocation:。位置管理器将在实际有位置时调用该委托(delegate)方法,只有这样才能安全地使用 location

在那里,在地理编码成功(或不成功)之后,您可能需要调用 stopUpdatingLocation 否则它会在每次更新用户位置时尝试进行地理编码。

在尝试对其进行地理编码之前,您可能还想检查接收到的位置的准确性 (newLocation.horizo​​ntalAccuracy) 和时间 (newLocation.timestamp)。

关于ios - CLGeocoder reverseGeocodeLocation 返回 'kCLErrorDomain error 9',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9526541/

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