Frage

Ich bin versuchen, retreiving Stadtnamen mit CLLocation und mkreversegeocoder. in meiner viewDidLoad Methode i istance CLLocationManager:

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

und nach:

- (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";

Anwendung funktioniert nur das erste Mal, dass ich meinen Wert. auf dem zweiten Mal App zum Absturz bringen. Ich denke, weil Geocoder gestartet und ich glaube, ich eine haben muss und nur eine istance läuft. (Aber ich bin shure wirklich nicht von diesem ...). in welcher Art und Weise i Geocoder controll kann ausgeführt wird?

Ich habe sehen, dass ich mkreversegeocoder in meinem viewDidLoad cllocationcoordinate2d mit istance kann aber ... in welcher Art und Weise kann ich newlocation.coordinate retreive?

habe ich teilweise Geocoder als Klassenvariable resolve deklarieren und Überprüfung

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

aber .... wenn in meinem

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

oder in meinem

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

i mein Objekt freigeben oder löschen? Ich fühle mich so dumm: D

War es hilfreich?

Lösung

Erstellen Sie nicht die umgekehrten Geocodierer als lokalen Variable.

Sehen Sie sich das MKReverseGeocoder Beispiel in der CurrentAddress Beispielanwendung von Apple zur Verfügung gestellt. Siehe MapViewController.h und MapViewController.m.

Folgen Sie das gleiche Muster in Ihrem Code.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top