Domanda

Sto utilizzando la classe MKPlacemark per popolare un'etichetta con le specifiche di localizzazione. Quando si chiama la proprietà AdministrativeArea, il nome completo dello stato americano viene restituito (per esempio West Virginia). C'è un modo per restituire solo le iniziali (ad esempio WV)?

È stato utile?

Soluzione

Documenti di Apple per quella proprietà suggeriscono che non c'è una vera definizione per quello che può contenere. La cosa migliore è probabilmente quello di creare una funzione per mappare dal nome dello stato completo del codice di 2 lettere, e passare il risultato della proprietà attraverso di essa prima della visualizzazione. Vorrei default la stringa originale, se non si ottiene una corrispondenza.

-(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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top