2009-12-14 97 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

相關問題