2012-01-23 28 views
23

Tôi có đoạn code sau đây và đang nhận được lỗi này trước khi biên dịch:ARC Enumeration tài sản Mạnh Lỗi

Biến Enumeration nhanh không thể được sửa đổi trong ARC theo mặc định, khai báo _strong biến cho phép điều này

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

Trong lớp S3ObjectController này, tôi đã sở hữu những tuyên bố như thế này:

@property (nonatomic, strong) NSString *stringProperty; 

Tôi nên thay đổi tài sản như thế nào? Tôi nghĩ tôi đã tuyên bố nó mạnh mẽ?

+0

Trông với tôi nó nên được 'localS3.stringProperty = tên;', không phải là cách khác xung quanh. –

+0

Bạn cũng chính xác, Cảm ơn – Eric

+2

Các bạn có biết TẠI SAO lỗi này xảy ra không? Mặc định là __strong, do đó, biến 'name' phải đã là' __strong' trong vòng lặp for vì nó tồn tại? 'cho (NSString * tên trong mảng)'. –

Trả lời

55

Nó có nghĩa là khai báo kiểu liệt kê nhanh biến mạnh mẽ, không biến dụ của bạn:

for (NSString __strong *name in array) { 
    @try { 
     S3ObjectController *localS3 = [[S3ObjectController alloc]init]; 
     name = localS3.stringProperty; 
    } 
} 
Các vấn đề liên quan