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; } ... }