2
MKPlacemark
클래스를 사용하여 위치 특성이있는 레이블을 채 웁니다. AdministrativeArea
속성을 호출하면 미국의 전체 이름이 반환됩니다 (예 : 웨스트 버지니아). 이니셜 (예 : WV) 만 반환 할 수있는 방법이 있습니까?MKPlacemark : AdministrativeArea의 미국 주 약어를 반환합니다.
MKPlacemark
클래스를 사용하여 위치 특성이있는 레이블을 채 웁니다. AdministrativeArea
속성을 호출하면 미국의 전체 이름이 반환됩니다 (예 : 웨스트 버지니아). 이니셜 (예 : WV) 만 반환 할 수있는 방법이 있습니까?MKPlacemark : AdministrativeArea의 미국 주 약어를 반환합니다.
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;
}
나는 모든 것을 피하기를 바랬지 만, 나는해야한다고 생각합니다. 고맙습니다. – dbarrett
흠. 나는 이것이 또한 지방을 위해 sanely 취급 될 수 있는지 궁금하다? (악센트가 되돌릴 수도 있고 그렇지 않을 수도 있습니다.) 나는 그 차이점을 모두 제거한 비교를 할 수있는 방법이 있다는 것을 읽은 것을 기억하는 것 같습니다. –
매핑을 포함하는 사전 빌드 된 plist 파일 및 추출 할 샘플 코드에 대한 참조는 http://stackoverflow.com/questions/2518381/iphone-mkreversegeocoder-adminstrarearea-getting-state- 약식을 참조하십시오. . –