2012-01-23 11 views
23

Mam następujący kod i otrzymuję ten błąd przed kompilacją:ARC Strong nieruchomość Wyliczanie Błąd

Szybko Zmienne Wyliczanie nie może być modyfikowana w ARC domyślnie zadeklarować zmienną _strong aby umożliwić tę

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

W tym S3ObjectController klasie, mam właściwość zadeklarowana następująco:

@property (nonatomic, strong) NSString *stringProperty; 

Jak zmienić nieruchomość? Myślałem, że deklaruję to mocne?

+0

wygląda mi powinno być 'localS3.stringProperty = nazwa;', a nie na odwrót. –

+0

Masz również rację, dziękuję – Eric

+2

Czy znacie DLACZEGO ten błąd występuje? Wartością domyślną jest __strong, więc zmienna 'name' powinna już być' __strong' w istniejącej pętli for? 'for (NSString * nazwa w tablicy)'. –

Odpowiedz

55

Oznacza to zadeklarować Szybcy wyliczenie zmiennej silne, a nie instancję zmiennej:

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