2009-12-14 96 views

回答

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; 
} 
+0

我曾希望避免所有这些,但我想我必须这样做。谢谢。 – dbarrett 2009-12-15 14:58:31

+0

嗯。我想知道这个问题是否也可以为各省妥善处理? (口音可能会传回,也可能不传回)。我似乎回想起,有一种方法可以进行比较,将所有这些差异消除掉。 – 2012-03-01 19:07:05

+0

你也可以看看这个问题http://stackoverflow.com/questions/2518381/iphone-mkreversegeocoder-adminstrativearea-getting-state-abbreviation引用预构建的plist文件包含映射和示例代码来提取它。 – 2013-03-14 10:30:53

相关问题