objective-c int readonly

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.

Bloques Temas de Programación

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 .