objective c - Objetivo C de sólo lectura int? ¿Qué?
objective-c readonly (2)
Intentaste acceder a este int
dentro de un bloque. Marque como __block
para que pueda actualizarse desde dentro del bloque.
Hice un intento de contar cuántos éxitos ha tenido uno de mis procesos. Fuera de mi código, declaro:
int successes = 0
.
Luego dentro de mi bucle, tengo successes++;
, en cuyo punto XCode se queja de que "la variable no es asignable (falta el especificador de tipo de bloqueo)".
Que esta pasando? ¿Por qué no puedo incrementar mi int? Nunca lo declaré de sólo lectura ...
Cualquier ayuda es muy apreciada.
El código que utilicé es:
_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];
}
Tu bucle está dentro de un bloque ( ^{...}
sintaxis). Los bloques no pueden alterar las variables fuera del bloque sin que esa variable tenga un especificador de __block
.