"Nome" de um CLPlacemark
Eu estou tentando entender CLPlacemark e quando / como criar informações para uma chamada de um pino que é adicionado a um mapa. Antes do que eu li no desenvolvimento do iOS 3 há alguns anos, eles inverteram um endereço geocodificado e construíram o endereço (rua, CEP, estado, etc). Primeiro, eu preciso construir essa string eu mesmo? Eu estava tentando descobrir como obter o nome de um local para determinadas coisas conhecidas, como procurar a loja da Apple no código abaixo:
NSString *address = @"1 stockton, san francisco, ca";
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder geocodeAddressString:address completionHandler:^(NSArray *placemarks, NSError *error) {
[placemarks enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"obj description: %@", [obj description]);
CLPlacemark *aPlacemark = (CLPlacemark *)obj;
NSLog(@"%@", [aPlacemark.addressDictionary description]);
NSLog(@"name: %@", ((CLPlacemark *)obj).name);
}];
];
Quando imprimo a descrição, vejo que o console diz:
Apple Store, San Francisco, 1 Stockton St, San Francisco, CA 94108-5805, United States @ <+37.78584545,-122.40651752> +/- 100.00m, region (identifier <+37.78584545,-122.40652161> radius 18.96) <+37.78584545,-122.40652161> radius 18.96m
De onde vem a loja da Apple, em San Francisco? Eu pensei que seria a propriedade CLPlacemark.name, mas isso é nulo. Então, ao tentar descobrir como a propriedade name é criada, eu encontrei:
NSLog(@"%@", [aPlacemark.addressDictionary description]);
Eu obtenho a saída:
City = "San Francisco";
Country = "United States";
CountryCode = US;
FormattedAddressLines = (
"Apple Store, San Francisco",
"1 Stockton St",
"San Francisco, CA 94108-5805",
"United States"
);
PostCodeExtension = 5805;
State = California;
Street = "1 Stockton St";
SubAdministrativeArea = "San Francisco";
SubLocality = "Union Square";
SubThoroughfare = 1;
Thoroughfare = "Stockton St";
ZIP = 94108;
A partir disso, tudo o que posso ver é que na chave FormattedAddressLines do addressDictionary, o título também está lá.
Então eu acho que minhas duas perguntas são:
1) Como obtenho o nome de um local se houver um (por exemplo, Apple Store)?
2) Eu preciso mais construir minha string, já que parece que o dicionário de endereços já faz isso para mim?
Obrigado!