Pregunta

Estoy tratar de retreiving nombre de la ciudad con cllocation y mkreversegeocoder. en mi método viewDidLoad i istance cllocationmanager:

self.locManager = [[CLLocationManager alloc] init];
locManager.delegate = self;
locManager.desiredAccuracy = kCLLocationAccuracyBest;
[locManager startUpdatingLocation];

y después de:

- (void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation 
*)newLocation
fromLocation:(CLLocation *)oldLocation {
//some code to retrieve my information

MKReverseGeocoder *geoCoder = [[MKReverseGeocoder alloc]     
initWithCoordinate:newLocation.coordinate ];
geoCoder.delegate = self;
[geoCoder start];
}

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark  
*)placemark
{
MKPlacemark *myPlacemark = placemark;
citta.text = [placemark locality];
}

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error{
citta.text =@ "Unknow";

La aplicación sólo funciona la primera vez que consigo mi valor. en el segundo accidente de aplicación tiempo. Creo que se debe a que se ha iniciado geocodificador y creo que debe tener uno y sólo uno corriendo istance. (Pero realmente no estoy Shure de esto ...). en el que manera puedo controll geocodificador se está ejecutando?

He veo que puedo Istance mkreversegeocoder en mi viewDidLoad usando cllocationcoordinate2d pero ... de qué manera puedo retreive newlocation.coordinate?

He parcialmente a resolver declarando geocodificador como variable de clase y la comprobación

if (self.geocoder != nil) {
   [geocoder release];
}

pero .... si en mi

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark  
*)placemark

o en mi

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailedWithError:(@NSError 
*)error

Libero o cancelar mi objeto? Me siento tan estúpida: D

¿Fue útil?

Solución

No cree el geocodificador inversa como una variable local.

Mira el ejemplo MKReverseGeocoder en el CurrentAddress aplicación de ejemplo proporcionado por Apple. Ver MapViewController.h y MapViewController.m.

Siga el mismo patrón en el código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top