CLGeocoder を使用して、デバイスの現在の位置を逆ジオコーディングしています。kCLErrorNetwork
Simulator では問題なく動作しますが、デバイス (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 ネットワークで試しました。デバイスでは決して機能しません。
どんな助けでも大歓迎です!