開始点と終了点をアドレス文字列にローカライズして、に格納できるようにしようとしています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");
これは私のアプリケーションデバッガーが示すものです:
eindeを開始します
たとえば、私の場所の住所が「Mainstreet 32、CITY」の場合。次に、私が見たいのは次のとおりです。
Mainstreet 32、
CITYEinde を開始します
問題は、コードが終了を待たないCLGeocoder
ため、変数returnAddress
が返されたときに変数が設定されず、空であるということです。
誰かがこれを回避する方法を知っていますか?