Как разобрать метки из CLGeocoder, чтобы отображался только город

Я использую следующий код для получения меток от CLGeocoder и хочу отображать только город в другом текстовом представлении на том же контроллере представления. Как мне выделить город из этого массива? Это не NSDictionary или что-то в этом роде, поэтому я не знаю, что делать.

CLGeocoder *geocoder = [[CLGeocoder alloc] init];

[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
    NSLog(@"reverseGeocodeLocation:completionHandler: Completion Handler called!");
    if (error){
        NSLog(@"Geocode failed with error: %@", error);
        return;
    }
    NSLog(@"Received placemarks: %@", placemarks);
}];

Мой журнал для данной метки выглядит следующим образом:

‹__NSArrayM 0x1a0b3810>( 937–961 Sunnyvale Saratoga Rd, 937–961 Sunnyvale Saratoga Rd, Саннивейл, Калифорния 94087, США @ ‹+37.35984860,-122.03235910> +/- 100,00 м )

or

‹__NSArrayM 0x19576ac0>( 5600 Van Nuys Blvd, 5600 Van Nuys Blvd, Van Nuys, CA 91401-4602, United States @ ‹+34.17257000,-118.44794450> +/- 100.00 м, регион (идентификатор ‹+194.464,464,172 радиус) 57.64) ‹+34.17257001,-118.44794464> радиус 57.64м )

Как я могу вывести часть Sunnyvale или Van Nuys в виде строки?


person Hudson Buddy    schedule 27.11.2012    source источник
comment
Ах, хорошо, так что он возвращает объекты CLPlacemark, у которых есть связанные с ним свойства. Полностью неправильно прочитал документацию, я думал, что она вернула беспорядок строки.   -  person Hudson Buddy    schedule 27.11.2012


Ответы (1)


Используйте CLPlacemark's properties

CLGeocoder * geoCoder = [[CLGeocoder alloc] init];
[geoCoder reverseGeocodeLocation:yourLocation completionHandler:^(NSArray *placemarks, NSError *error) {
  CLPlacemark *placemark = [placemarks objectAtIndex:0];
  NSString *strCity = [placemark locality];
  NSLog(@"%@",strCity);
}];
person Paresh Navadiya    schedule 27.11.2012