当使用 CLGeocoder 的 ResreverseGeocodeLocation 但返回的地标为 nil 并且 kCLErrorDomain 错误 =8
Posted
技术标签:
【中文标题】当使用 CLGeocoder 的 ResreverseGeocodeLocation 但返回的地标为 nil 并且 kCLErrorDomain 错误 =8【英文标题】:When use ResreverseGeocodeLocation of CLGeocoder but the returned placemarks is nil and the kCLErrorDomain error =8 【发布时间】:2012-11-17 17:15:09 【问题描述】:我想通过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;
];
但是返回的 placemarks 是 nil 并且错误描述是 kCLErrorDomain error =8
【问题讨论】:
newLocation 的值是多少? 新位置是[[CLLocation alloc] initWithLatitude:32.392917 longitude:119.416108]
Apple Maps 那里有道路数据吗?
【参考方案1】:
这里记录了返回值。
https://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CoreLocationConstantsRef/Reference/reference.html#//apple_ref/doc/uid/TP40010237-CH2-SW2
数字 8 是“kCLErrorGeocodeFoundNoResult”,所以我怀疑您正在搜索没有结果的东西。我在其他地方读到 CLGeocoder 只能在设备(而不是模拟器)上运行,但我自己还没有验证过。如果您确定您的搜索字符串应该得到结果,请在设备上尝试您的代码。
【讨论】:
谢谢。你是对的,位置可能有问题。 我的网络有问题吗,你知道吗,我在中国。【参考方案2】:我的问题是我使用连接到泰国服务器的 ***,试图在英国邮政编码上执行 reverseGeocodeLocation。 当我将 *** 切换到英国服务器时,它运行良好。
【讨论】:
以上是关于当使用 CLGeocoder 的 ResreverseGeocodeLocation 但返回的地标为 nil 并且 kCLErrorDomain 错误 =8的主要内容,如果未能解决你的问题,请参考以下文章