Objective c ios中的_块和CLGecoder有问题吗?
我写了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
-(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有值,而外部没有值?
有人能帮我吗?
提前感谢。地理编码器是异步的——根据定义,这意味着您无法立即获得结果。您必须使用完成处理程序对结果执行任何您想执行的操作。地理编码器是异步的——根据定义,这意味着您无法立即获得结果。必须使用完成处理程序对结果执行任何操作