我做了一个 int 来计算我的一个过程有多少成功。在我的代码之外,我声明:
int 成功数 = 0
。
然后在我的循环中,我有 successes++;
,此时 XCode 提示“变量不可分配(缺少 _block 类型说明符)”。
这是怎么回事?为什么我不能增加我的整数?我从未声明它是只读的...
非常感谢任何帮助。
我使用的代码是:
_block int successes = 0;
for(CLLocation *location in locationOutputArray)
{
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error)
{
if(placemarks && placemarks.count > 0)
{
successes++;
CLPlacemark *topResult = [placemarks objectAtIndex:0];
NSString *address = [NSString stringWithFormat:@"%@ %@,%@ %@", [topResult subThoroughfare],[topResult thoroughfare],[topResult locality], [topResult administrativeArea]];
[addressOutputArray addObject:address];
NSLog(@"%@",address);
}
}];
[geocoder release];
}
最佳答案
您的循环在一个 block 内(^{...}
语法)。如果变量没有 __block
说明符,则 block 不能更改 block 外的变量。
关于objective-c - Objective C 只读 int?什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6727179/