ios - Objective-C 从 block 中获取变量

标签 ios objective-c

我正在努力从 block 中获取变量。似乎是一个非常基本的东西,但我无法弄清楚!我怎样才能访问它?例如usercity 出了街区? Usercity 在 .h 中声明为 NSString。

[ceo reverseGeocodeLocation: loc completionHandler:
 ^(NSArray *placemarks, NSError *error) {


     CLPlacemark *placemark = [placemarks objectAtIndex:0];
     //NSLog(@"placemark %@",placemark);
     //String to hold address
     //NSString *locatedAt = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "];
     //NSLog(@"addressDictionary %@", placemark.addressDictionary);

     //NSLog(@"placemark %@",placemark.region);
     NSLog(@"Land %@",placemark.country);  // Give Country Name
     NSLog(@"City %@",placemark.locality); // Extract the city name
     NSLog(@"Adresse %@",placemark.name);
     //NSLog(@"location %@",placemark.ocean);
     NSLog(@"Zip %@",placemark.postalCode); //ZipCode
     NSLog(@"sonstiges %@",placemark.subLocality);


     //Save values in variables
     usercountry = placemark.country;
     usercity = placemark.locality;
     userzip = placemark.postalCode;
     NSLog(@"usercity: %@",usercity);

     //NSLog(@"location %@",placemark.location);



 }

 ];

最佳答案

这是您要找的吗?

__block NSString *userCity;
[ceo reverseGeocodeLocation: loc completionHandler:^(NSArray *placemarks, NSError *error) {

     CLPlacemark *placemark = [placemarks objectAtIndex:0];
     ...
     userCity = placemark.locality;

}];

但是,如果您希望实际上能够在 block 之外检查其值,则必须在完成处理程序更新该值后执行此操作。也许使它成为一种属性(property),即。 self.userCity

关于ios - Objective-C 从 block 中获取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26448643/

相关文章:

ios - 如何使用可绑定(bind)对象(EnvironmentObject)?

android - 导入按钮是否从解析仪表板数据浏览器中删除了?

objective-c - 在静态库中隐藏代码(iOS Obj-C)

objective-c 类变量 : when is dealloc called?

iOS - NSMutableDictionary 恢复到以前的状态?

ios - MKAnnotionView 不显示标注

ios - 在 Swift 数组中过滤 nil 的更简洁方法

objective-c - Objective C 正则表达式以 1 或 2 位数字开头

ios - NSHashTable 计数错误地报告非空

ios - ios中两个Label的圆角