MKPlacemark: вернуть аббревиатуру штата США в административной области

Я использую MKPlacemark класс для заполнения метки с указанием местоположения. При звонке AdministrativeArea свойство, полное название штата США возвращается (например, Западная Вирджиния). Есть ли способ вернуть ТОЛЬКО инициалы (например, WV)?

1 ответ

Решение

Документы Apple по этому свойству предполагают, что нет реального определения того, что оно может содержать. Лучше всего, вероятно, создать функцию для преобразования полного имени состояния в двухбуквенный код и передать результат свойства через него перед отображением. Я бы по умолчанию исходную строку, если вы не получите совпадение.

-(NSString *)codeFromState:(NSString *)state {
  NSArray *map = [NSArray arrayWithObjects:@"Alabama",@"AL", @"Alaska",@"AK", ... @"Wyoming", @"WY", nil];
  for (int i = 0; i <[map count]; i+=2) {
    if ([state compare:[map objectAtIndex:i]] == NSOrderedSame) {
      return [map objectAtIndex:i+1];
    }
  }
  return state;
}
Другие вопросы по тегам