преобразовать MKPlaceMark addressDictionary в кодированную строку - PullRequest
4 голосов
/ 09 апреля 2011

Я работаю над примером использования MKReverseGeocoder для преобразования lat, long в address.Но когда я получил данные и попытался получить результат, я получил следующую строку:

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

Я получил адрес, подобный следующему: "Ng \ U00f5 381 Nguy \ U1ec5n Khang" ,

Как я могу преобразовать его в строку в формате Unicode?

Заранее спасибо.

Ответы [ 2 ]

16 голосов
/ 04 мая 2011

Если вы получаете объект 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 +

3 голосов
/ 16 ноября 2011

Если вы получаете объект 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]);
...