Objective c ios中的_块和CLGecoder有问题吗?

Objective c ios中的_块和CLGecoder有问题吗?,objective-c,ios,objective-c-blocks,clgeocoder,Objective C,Ios,Objective C Blocks,Clgeocoder,我写了CLGecoder的代码,代码是 -(NSString *)GetCurrentAddress:(CLLocation *)Location { __block NSString *locatedaddress; CLGeocoder *Gecoder=[[CLGeocoder alloc]init]; [Gecoder reverseGeocodeLocation: Location completionHandler: ^(NSArray *place

我写了CLGecoder的代码,代码是

-(NSString *)GetCurrentAddress:(CLLocation *)Location
{
  __block NSString  *locatedaddress;
    CLGeocoder *Gecoder=[[CLGeocoder alloc]init];
    [Gecoder reverseGeocodeLocation: Location completionHandler: 
     ^(NSArray *placemarks, NSError *error) {

         //Get address
         CLPlacemark *placemark = [placemarks objectAtIndex:0];

         NSLog(@"Placemark array: %@",placemark.addressDictionary );

         //String to address
       locatedaddress = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "];

         //Print the location in the console
         NSLog(@"Currently address is: %@",locatedaddress);


     }];
    return locatedaddress;
}
问题是completionHandler内部的locatedaddress有值,而外部没有值? 有人能帮我吗?
提前感谢。

地理编码器是异步的——根据定义,这意味着您无法立即获得结果。您必须使用完成处理程序对结果执行任何您想执行的操作。

地理编码器是异步的——根据定义,这意味着您无法立即获得结果。必须使用完成处理程序对结果执行任何操作