【问题标题】:ARC Strong property Enumeration ErrorARC 强属性枚举错误
【发布时间】:2012-02-16 22:19:22
【问题描述】:

我有以下代码,并且在编译之前收到此错误:

快速枚举变量默认不能在ARC中修改,声明变量_strong允许这样做

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

在这个S3ObjectController 类中,我有这样声明的属性:

@property (nonatomic, strong)  NSString *stringProperty;

我应该如何更改属性?我以为我在宣称它很强大?

【问题讨论】:

  • 在我看来应该是localS3.stringProperty = name;,而不是相反。
  • 你们知道为什么会出现这个错误吗?默认是__strong,所以变量name应该已经在for循环中是__strong,因为它存在? for (NSString *name in array).

标签: objective-c properties automatic-ref-counting enumeration


【解决方案1】:

这意味着声明快速枚举变量strong,而不是你的实例变量:

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

【讨论】:

    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 2018-02-04
    相关资源
    最近更新 更多