2

で場所を取得したいので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 です。

4

2 に答える 2

1

戻り値はここに記載されています。

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

8 番は「kCLErrorGeocodeFoundNoResult」なので、結果のないものを探しているのではないかと思います。CLGeocoder は (シミュレーターではなく) デバイスでのみ実行されることを他の場所で読みましたが、自分で確認していません。検索文字列で確実に結果が得られる場合は、デバイスでコードを試してください。

于 2012-11-19T21:04:02.513 に答える
0

私の問題は、タイのサーバーに接続された VPN を使用していて、英国の郵便番号で reverseGeocodeLocation を実行しようとしたことでした。VPN を英国のサーバーに切り替えたところ、問題なく動作しました。

于 2019-06-04T02:41:55.677 に答える