2012-01-23 12 views
23

tengo el siguiente código y estoy recibiendo este error antes de compilar:ARC error Enumeración propiedad Fuerte

variables de enumeración rápida no se pueden modificar en ARC por defecto, declarar la variable _strong para permitir que este

for (NSString *name in array){ 
     @try { 
      S3ObjectController *localS3 = [[S3ObjectController alloc]init]; 
      name = localS3.stringProperty; 
} 

En esta clase S3ObjectController, que tienen la propiedad declarada como esto:

@property (nonatomic, strong) NSString *stringProperty; 

¿Cómo debo cambiar la propiedad? Pensé que lo estaba declarando fuerte

+0

A mi me parece que debería ser 'localS3.stringProperty = nombre;', no al revés. –

+0

Usted también está correcto, Gracias – Eric

+2

¿Ustedes saben POR QUÉ se produce este error? El valor predeterminado es __strong, por lo que la variable 'name' ya debería haber sido' __strong' en el ciclo for como existía? 'for (NSString * name in array)'. –

Respuesta

55

Significa declarar la enumeración rápida variable fuerte, no la variable de instancia:

for (NSString __strong *name in array) { 
    @try { 
     S3ObjectController *localS3 = [[S3ObjectController alloc]init]; 
     name = localS3.stringProperty; 
    } 
} 
Cuestiones relacionadas