2
我使用MKPlacemark
类来填充具有位置细节的标签。拨打AdministrativeArea
财产时,会返回美国州的全名(例如西弗吉尼亚州)。是否有办法只返回首字母缩写(例如WV)?MKPlacemark:在AdministrativeArea中返回美国州名缩写
我使用MKPlacemark
类来填充具有位置细节的标签。拨打AdministrativeArea
财产时,会返回美国州的全名(例如西弗吉尼亚州)。是否有办法只返回首字母缩写(例如WV)?MKPlacemark:在AdministrativeArea中返回美国州名缩写
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;
}
我曾希望避免所有这些,但我想我必须这样做。谢谢。 – dbarrett 2009-12-15 14:58:31
嗯。我想知道这个问题是否也可以为各省妥善处理? (口音可能会传回,也可能不传回)。我似乎回想起,有一种方法可以进行比较,将所有这些差异消除掉。 – 2012-03-01 19:07:05
你也可以看看这个问题http://stackoverflow.com/questions/2518381/iphone-mkreversegeocoder-adminstrativearea-getting-state-abbreviation引用预构建的plist文件包含映射和示例代码来提取它。 – 2013-03-14 10:30:53