Question

J'utilise la classe MKPlacemark pour remplir une étiquette avec des détails de l'emplacement. Lorsque vous appelez la propriété AdministrativeArea, le nom complet de l'état américain est retourné (par exemple Virginie-Occidentale). Est-il possible de revenir seulement les initiales (par exemple WV)?

Était-ce utile?

La solution

docs d'Apple pour cette propriété suggèrent qu'il n'y a pas de véritable définition pour ce qu'elle peut contenir. Votre meilleur pari est probablement de créer une fonction de carte du nom complet de l'état du code 2 lettres, et de transmettre le résultat de la propriété par le biais avant affichage. Je défaut à la chaîne d'origine si vous ne recevez pas un match.

-(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;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top