23

私は、次のコードを持っており、コンパイルする前に、このエラーを取得しています:このARC強力なプロパティ列挙エラー

できるように、変数_strongを宣言し、

を高速列挙変数は、デフォルトではARCに変更することはできませんこのS3ObjectControllerクラスで

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

、私はプロパティには、次のように宣言している:

@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; 
    } 
} 
関連する問題