«Имя» CLPlacemark
я пытаюсь понять CLPlacemark и когда / как создать информацию для выноски контакта, который добавляется на карту. Перед тем, что я читал в разделе «Разработка для iOS 3» несколько лет назад, они геокодировали адрес и строили адрес (улица, почтовый индекс, штат и т. Д.). Во-первых, мне нужно построить эту строку самостоятельно? Я пытался узнать, как получить название местоположения для определенных известных вещей, таких как поиск магазина Apple, в приведенном ниже коде:
NSString *address = @"1 stockton, san francisco, ca";
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder geocodeAddressString:address completionHandler:^(NSArray *placemarks, NSError *error) {
[placemarks enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"obj description: %@", [obj description]);
CLPlacemark *aPlacemark = (CLPlacemark *)obj;
NSLog(@"%@", [aPlacemark.addressDictionary description]);
NSLog(@"name: %@", ((CLPlacemark *)obj).name);
}];
];
Когда я распечатываю описание, я вижу, что Консоль говорит:
Apple Store, San Francisco, 1 Stockton St, San Francisco, CA 94108-5805, United States @ +/- 100.00m, region (identifier radius 18.96) radius 18.96m
Откуда он берет Apple Store, Сан-Франциско, имя? Я думал, что это будет свойство CLPlacemark.name, но это ноль. Итак, пытаясь выяснить, как создается свойство name, я обнаружил:
NSLog(@"%@", [aPlacemark.addressDictionary description]);
Я получаю вывод:
City = "San Francisco";
Country = "United States";
CountryCode = US;
FormattedAddressLines = (
"Apple Store, San Francisco",
"1 Stockton St",
"San Francisco, CA 94108-5805",
"United States"
);
PostCodeExtension = 5805;
State = California;
Street = "1 Stockton St";
SubAdministrativeArea = "San Francisco";
SubLocality = "Union Square";
SubThoroughfare = 1;
Thoroughfare = "Stockton St";
ZIP = 94108;
Из этого все, что я могу видеть, это то, что в ключе FormattedAddressLines addressDictionary, заголовок также там.
Итак, я думаю, что мои 2 вопроса:
1) Как я могу получить название местоположения, если оно есть (например, Apple Store)?
2) Нужно ли мне строить свою строку больше, так как кажется, что адресный словарь уже делает это для меня?
Спасибо!