使用CLGeocoder的ResreverseGeocodeLocation但返回的地标是nil且kCLErrorDomain错误= 8

时间:2012-11-17 17:15:10

标签: ios mapkit

我想通过CLLocationCoordinate2D获取位置,并使用以下代码

//newLocation is a CLLocationCoordinate2D object
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:newLocation completionHandler:
^(NSArray *placemarks, NSError *error){
CLPlacemark *placemark = [placemarks objectAtIndex:0];
self.locationInput.text =placemark.subLocality;
self.locationInput.text =placemark.ISOcountryCode;
}];

但返回的地标是nil,错误描述是kCLErrorDomain error = 8

2 个答案:

答案 0 :(得分:1)

此处记录了返回值。

https://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CoreLocationConstantsRef/Reference/reference.html#//apple_ref/doc/uid/TP40010237-CH2-SW2

8号是“kCLErrorGeocodeFoundNoResult”,所以我怀疑你正在搜索没有结果的东西。我在别处读过CLGeocoder只在设备上运行(不是模拟器),但我自己没有验证过。如果您确定搜索字符串应该获得结果,请在设备上试用您的代码。

答案 1 :(得分:0)

我的问题是我正在使用连接到泰国服务器的VPN,试图在英国邮政编码上进行reverseGeocodeLocation。 当我将VPN切换到英国服务器时,它运行良好。