转换MKPlaceMark addressDictionary字符串编码

Tue*_*yen 4 iphone mkreversegeocoder

我正在研究一个使用MKReverseGeocoder转换lat,long到地址的例子.但是当我收到数据并尝试获得结果时,我收到的字符串如下:

NSString *street = [geocoder.addressDictionary objectForKey:@"Street"];
Run Code Online (Sandbox Code Playgroud)

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

我怎样才能将其转换为unicode格式化的字符串?

提前致谢.

Ric*_*ves 16

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

NSLog(@"Address of placemark: %@", ABCreateStringWithAddressDictionary(placemark.addressDictionary, NO));
Run Code Online (Sandbox Code Playgroud)

您需要将AddressBookUI框架添加到您的项目中

#import <AddressBookUI/AddressBookUI.h>
Run Code Online (Sandbox Code Playgroud)

同样.

我不确定响应是unicode,但看起来它能够合理地表示地标中的所有数据.

未经测试,但是

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

所需的框架是"联系人",因此请将其包括在内:

@import Contacts;
Run Code Online (Sandbox Code Playgroud)

应该是iOS11.0 +中新的做事方式