MKPlacemark: вернуть аббревиатуру штата США в административной области - PullRequest
2 голосов
/ 14 декабря 2009

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

1 Ответ

2 голосов
/ 14 декабря 2009

Документы 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;
}
...