MKPlacemark:在AdministrativeArea中返回美国州名缩写

时间:2009-12-14 18:41:50

标签: objective-c cllocation mkplacemark

我正在使用MKPlacemark类来填充具有位置细节的标签。调用AdministrativeArea属性时,将返回美国州的全名(例如西弗吉尼亚州)。有没有办法只返回首字母(例如WV)?

1 个答案:

答案 0 :(得分:2)

Apple's docs for that property表明它可以包含的内容没有真正的定义。您最好的选择可能是创建一个函数来从完整的州名称映射到2个字母的代码,并在显示之前将属性的结果传递给它。如果你没有匹配,我会默认为原始字符串。

-(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;
}