4

MKReverseGeocoder を使用して緯度経度を住所に変換する例に取り組んでいます。しかし、データを受け取って結果を取得しようとすると、以下のように文字列を受け取りました:

NSString *street = [geocoder.addressDictionary objectForKey:@"Street"];

「Ng\U00f5 381 Nguy\U1ec5n Khang」のようなアドレスを受け取りました。

どうすればユニコード形式の文字列に変換できますか?

前もって感謝します。

4

2 に答える 2

16

MKPlaceMark オブジェクトを MKRevereseGeocoder デリゲート コールバックから取得する場合は、次を使用して目印を読み取り可能な住所に変換できます。

NSLog(@"Address of placemark: %@", ABCreateStringWithAddressDictionary(placemark.addressDictionary, NO));

プロジェクトに AddressBookUI フレームワークを追加し、

#import <AddressBookUI/AddressBookUI.h>

同じように。

応答が Unicode かどうかはわかりませんが、目印のすべてのデータを適切に表しているようです。

未検証ですが、

NSLog(@"Address of placemark: %@", [CNPostalAddressFormatter stringFromPostalAddress:placeMark.postalAddress style:CNPostalAddressFormatterStyleMailingAddress]);

必要なフレームワークは「連絡先」なので、次のように含めます。

@import Contacts;

iOS11.0以降での新しいやり方になるはずです

于 2011-05-04T13:24:03.887 に答える
3

MKPlaceMarkデリゲート コールバックからオブジェクトを取得する場合はMKRevereseGeocoder、次を使用して目印を読み取り可能なアドレスに変換できます。

NSLog(@"The geocoder has returned: %@", [placemark addressDictionary]);
//all elements returned

//you can get some object like coutry ,code ;code country ...

NSLog(@"country ::::%@",[placemark country]);

NSLog(@"countrycode ::::%@",[placemark countryCode]);

NSLog(@"postalcode ::::%@",[placemark postalcode]);

NSLog(@"street::::%@",[placemark thoroughfare]);

 NSLog(@"streetinfo::::%@",[placemark administrativeArea]);

NSLog(@"streeteersub ::::%@",[placemark subAdministrativeArea]);
于 2011-11-16T08:45:34.513 に答える