我想为两个字符串分配一个值,然后在块外使用它们,或者在另一个类中将其用作属性。但是我得到Null作为回报。
这是代码:
__block NSString* citySTR = nil;
__block NSString* countrySTR = nil;
[geocoder reverseGeocodeLocation:locationManager.location completionHandler:
^(NSArray* placemarks, NSError* error){
if ([placemarks count] > 0)
{
citySTR = [[placemarks objectAtIndex:0] administrativeArea];
countrySTR = [[placemarks objectAtIndex:0] country];
}
}];
当我
NSLog
街区之外的citySTR和countrySTR时,我得到Null
。 最佳答案
之后您要如何处理这些值?
如果要设置标签或调用其他类方法,则可以在块内进行操作。
另一个解决方案是进行委派/添加观察者:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(somethingHappens:) name:@"notificationName" object:nil]; - this one suppose to listen do the event (called at the initialisation)
而这个调用它:
[[NSNotificationCenter defaultCenter] postNotificationName:@"notificationName" object:obj];
您可以将citySTR和countrySTR作为属性-也许可以帮助您
关于ios - 如何访问已在块内分配的对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24244608/