iPhone - MKReverseGeocoder.adminstrativeArea - получение сокращения штата

В документации для MKReverseGeocoder свойство administratorArea указывает текущее состояние, в котором находится пользователь, и в примере упоминает, что возвращает ЛИБО имя состояния ИЛИ его сокращение. Мне интересно, знает ли кто-нибудь, как получить аббревиатуру вместо полного имени штата... Я не смог найти ничего, что показывало бы, что это даже возможно, кроме того краткого примера, в котором не упоминается КАК.

Спасибо!

2 ответа

Решение

Нет способа сделать это. Не уверен, почему в документах Apple написано "Калифорния или Калифорния".

Легко преобразовать состояние в двухбуквенное имя. Просто создайте список (таблица, или NSDictionary работает тоже) из следующего: http://www.usps.com/ncsc/lookups/usps_abbreviations.html и используйте его для поиска двухбуквенных сокращений.

Мне также нужно было преобразовать поле State из MKReverseGeocoder в двухбуквенное сокращение, поэтому я создал этот список:

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

Вот как я это использую:

// в моем init
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"USStateAbbreviations" ofType:@"plist"];
self.usStateAbbreviations = [[NSDictionary alloc] initWithContentsOfFile:plistPath];

// MKReverseGeocoder метод делегата
- (void)reverseGeocoder:(MKReverseGeocoder *) геокодер didFindPlacemark:(MKPlacemark *)placemark {   
... 
    NSString *state = [address objectForKey:@"State"];
    NSString *stateAbbreviation = [self.usStateAbbreviations objectForKey:[state uppercaseString]];
    NSString *stateTarget = состояние;
    if (stateAbbreviation) {
        stateTarget = stateAbbreviation;
    }    
...
}
Другие вопросы по тегам