2

在 MKReverseGeocoder 的文档中,administrationArea 属性为您提供了用户当前所处的状态,并在示例中提到它返回状态名称或其缩写。我想知道是否有人知道如何获得缩写而不是完整的州名……除了没有提到如何的简短示例之外,我找不到任何东西表明这甚至是一种可能性。

谢谢!

4

2 回答 2

7

我还需要将 MKReverseGeocoder 中的 State 字段转换为两个字母的缩写,所以我创建了这个 plist:

https://github.com/djibouti33/US-State-Abbreviations

这是我如何使用它:

// 在我的初始化中
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"USStateAbbreviations" ofType:@"plist"];
self.usStateAbbreviations = [[NSDictionary alloc] initWithContentsOfFile:plistPath];

// MKReverseGeocoder 委托方法
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark {   
...
    NSString *state = [address objectForKey:@"State"];
    NSString *stateAbbreviation = [self.usStateAbbreviations objectForKey:[state uppercaseString]];
    NSString *stateTarget = 状态;
    如果(状态缩写){
        stateTarget = stateAbbreviation;
    }    
...
}
于 2011-06-18T12:12:01.683 回答
3

没有办法做到这一点。不知道为什么 Apple 文档会说“CA 或 California”。

将状态转换为 2 个字母名称很容易。只需创建以下内容的 plist(表格或 NSDictionary 也适用):http ://www.usps.com/ncsc/lookups/usps_abbreviations.html并使用它来查找 2 个字母的缩写。

于 2010-03-25T19:00:01.363 回答