我正在使用 CLGeocoder 对设备的当前位置进行反向地理编码。它在模拟器上运行良好,但kCLErrorNetwork
在设备(iPhone 4 和 iPad 3)上总是失败并出现错误。
代码非常简单:
if ( geocoder == nil ) geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:self.location completionHandler:^(NSArray *placemarks, NSError *error) {
if ( error == nil ) {
// Do good stuff with the placemark...
} else {
NSLog(@"unable to reverse geocode location %@ due to error: %@", self.location, error);
}
}];
打印的错误信息是:
unable to reverse geocode location <[redacted],[redacted]> +/- 69.94m (speed -1.00 mps / course -1.00) @ 9/4/12 10:30:19 AM Eastern Daylight Time due to error: Error Domain=kCLErrorDomain Code=2 "The operation couldn’t be completed. (kCLErrorDomain error 2.
此方法仅在 CLLocationManager 提供位置后调用,因此该方法始终传递一个有效位置。
我已经在几个 Wi-Fi 网络和 3G 网络上尝试过。它永远不会在设备上运行。
任何帮助将不胜感激!