4

我正在研究一个使用 MKReverseGeocoder 将经纬度转换为地址的示例。但是当我收到数据并尝试获取结果时,我收到的字符串如下:

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

我收到了这样的地址:"Ng\U00f5 381 Nguy\U1ec5n Khang"

如何将其转换为 unicode 格式的字符串?

提前致谢。

4

2 回答 2

16

如果您从 MKRevereseGeocoder 委托回调中获取 MKPlaceMark 对象,则可以使用以下命令将地标转换为可读地址:

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

如果您MKPlaceMarkMKRevereseGeocoder委托回调中取回对象,则可以使用以下命令将地标转换为可读地址:

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 回答