2012-01-23 98 views
23

我有下面的代碼和編譯之前,我得到這個錯誤:ARC強力屬性枚舉錯誤

快速計數的變量不能被默認ARC修改,聲明變量_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'在for循環中應該已經是'__strong'了嗎? 'for(NSString * name in array)'。 –

回答

55

這意味着申報快速列舉變強,不是你的實例變量:

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