CLPlacemark - State Abbreviations?

后端 未结 7 1477
隐瞒了意图╮
隐瞒了意图╮ 2021-02-19 00:24

I was wondering if it was possible to get the state abbreviations from CLPlacemark?

In the CLPlacemark Reference from Apple it states:

administrativeArea The sta

7条回答
  •  耶瑟儿~
    2021-02-19 00:38

    For anyone else that needs a solution for this, I've created a category class for CLPlacemark that returns the short state string. All you need to do is call myPlacemark shortState

    CLPlacemark+ShortState.h

    #import 
    #import 
    
    @interface CLPlacemark (ShortState)
    
    - (NSString *)shortState;
    
    @end
    

    CLPlacemark+ShortState.m

    #import "CLPlacemark+ShortState.h"
    
    @interface CLPlacemark (ShortStatePrivate)
    
    - (NSDictionary *)nameAbbreviations;
    
    @end
    
    @implementation CLPlacemark (ShortState)
    
    - (NSString *)shortState {
    
        NSString *state = [self.administrativeArea lowercaseString];
    
        if (state.length==0)
            return nil;
    
        return [[self nameAbbreviations] objectForKey:state];
    
    }
    
    - (NSDictionary *)nameAbbreviations {
    
        static NSDictionary *nameAbbreviations = nil;
    
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
    
            nameAbbreviations = [NSDictionary dictionaryWithObjectsAndKeys:
                                 @"AL",@"alabama",
                                 @"AK",@"alaska",
                                 @"AZ",@"arizona",
                                 @"AR",@"arkansas",
                                 @"CA",@"california",
                                 @"CO",@"colorado",
                                 @"CT",@"connecticut",
                                 @"DE",@"delaware",
                                 @"DC",@"district of columbia",
                                 @"FL",@"florida",
                                 @"GA",@"georgia",
                                 @"HI",@"hawaii",
                                 @"ID",@"idaho",
                                 @"IL",@"illinois",
                                 @"IN",@"indiana",
                                 @"IA",@"iowa",
                                 @"KS",@"kansas",
                                 @"KY",@"kentucky",
                                 @"LA",@"louisiana",
                                 @"ME",@"maine",
                                 @"MD",@"maryland",
                                 @"MA",@"massachusetts",
                                 @"MI",@"michigan",
                                 @"MN",@"minnesota",
                                 @"MS",@"mississippi",
                                 @"MO",@"missouri",
                                 @"MT",@"montana",
                                 @"NE",@"nebraska",
                                 @"NV",@"nevada",
                                 @"NH",@"new hampshire",
                                 @"NJ",@"new jersey",
                                 @"NM",@"new mexico",
                                 @"NY",@"new york",
                                 @"NC",@"north carolina",
                                 @"ND",@"north dakota",
                                 @"OH",@"ohio",
                                 @"OK",@"oklahoma",
                                 @"OR",@"oregon",
                                 @"PA",@"pennsylvania",
                                 @"RI",@"rhode island",
                                 @"SC",@"south carolina",
                                 @"SD",@"south dakota",
                                 @"TN",@"tennessee",
                                 @"TX",@"texas",
                                 @"UT",@"utah",
                                 @"VT",@"vermont",
                                 @"VA",@"virginia",
                                 @"WA",@"washington",
                                 @"WV",@"west virginia",
                                 @"WI",@"wisconsin",
                                 @"WY",@"wyoming",
                                 nil];
        });
    
        return nameAbbreviations;
    }
    
    @end
    

提交回复
热议问题