我正在尝试将起点和终点本地化为地址字符串,以便可以将其存储到NSUserDefaults
. 问题是该方法继续执行并且没有设置我的变量。
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");
这是我的应用程序调试器显示的内容:
开始
_
例如,如果我的地址是:“Mainstreet 32, CITY”。那么我想看到的是以下内容:
开始
Mainstreet 32, CITY
Einde
问题是我的代码没有等待我CLGeocoder
完成,所以我的变量returnAddress
在返回时没有设置,它是空的。
有谁知道如何解决这个问题?