Set address-string mit reverseGeocodeLocation: und Rückkehr aus der Methode

Ich bin versuchen zu lokalisieren, einen start-und Endpunkt an eine Adresse string, so dass ich speichern Sie es in NSUserDefaults. Das problem ist, dass das Verfahren weiterhin ausgeführt und nicht meine variable.

NSLog(@"Begin");

__block NSString *returnAddress = @"";

[self.geoCoder reverseGeocodeLocation:self.locManager.location completionHandler:^(NSArray *placemarks, NSError *error) {
    if(error){
        NSLog(@"%@", [error localizedDescription]);
    }

    CLPlacemark *placemark = [placemarks lastObject];

    startAddressString = [NSString stringWithFormat:@"%@ %@\n%@ %@\n%@\n%@",
                          placemark.subThoroughfare, placemark.thoroughfare,
                          placemark.postalCode, placemark.locality,
                          placemark.administrativeArea,
                          placemark.country];
    returnAddress = startAddressString;

    //[self.view setUserInteractionEnabled:YES];
}];
NSLog(returnAddress);

NSLog(@"Einde");

Dies ist, was meine Anwendung debugger zeigt:

starten
am Einde

Wenn zum Beispiel die Adresse von mein Standort ist : "Mainstreet 32, STADT". Dann, was ich würde sehen wollen, ist die folgende:

Starten
Hauptstraße 32, STADT
Am Einde

Problem ist, dass mein code nicht warten, für meine CLGeocoder zu beenden, also meine variable returnAddress ist nicht festgelegt, wenn es zurückgegeben wird, und es ist leer.

Weiß jemand, wie dies zu umgehen?

InformationsquelleAutor Wesley | 2013-01-15

Schreibe einen Kommentar