23

У меня есть следующий код, и я получаю эту ошибку до компиляции:ARC Strong свойство Перечень ошибок

Быстрые переменные перечислений не могут быть изменены в АРК по умолчанию, объявить переменную _strong разрешить эту

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

В этом S3ObjectController классе, я собственность объявляется следующим образом:

@property (nonatomic, strong) NSString *stringProperty; 

Как мне изменить свойство? Я думал, что объявляю это сильным?

+0

смотрит на меня, должно быть 'localS3.stringProperty = имя,', а не наоборот. –

+0

Вы тоже верны, спасибо – Eric

+2

Вы, ребята, знаете, ПОЧЕМУ эта ошибка? По умолчанию используется значение __strong, поэтому переменная 'name' должна быть уже' __strong' в цикле for, как она существовала? 'for (NSString * name в массиве)'. –

ответ

55

Это значит объявить Быстрая нумерация переменных сильный, а не переменную экземпляра:

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