iOS中readonly和retain是互斥的。

3

我希望拥有一个强大的只读属性。当我使用以下代码时:

@property (strong, nonatomic, readonly) NSString *test;

我收到了一个警告:“属性 'readonly' 和 'retain' 是互斥的”。我该如何解决这个警告?

1
为什么您要这样做?可能您正在私下声明 readwrite 属性(或者缺少该属性)? - Wain
我希望其他类只能获取测试属性而不能设置它。 - Haagenti
好的,但你必须在某个地方设置值或返回一个值 - 那在哪里? - Wain
1
在init方法中,我可以通过_test来设置它,对吧? - Haagenti
4
目前无法找到参考文献,但已知在Xcode 5.0.2中附带的clang版本中存在一个已知错误。使用5.1测试版将不再出现此(虚假)错误;) - HAS
好的,我会耐心等待的 ;) - Haagenti
1个回答

3
在您的续类别中创建一个属性,重新定义变量为readwrite:
@property (strong, nonatomic, readwrite) NSString *test;

现在,这个属性是只读的公共属性,但是你可以私下写入它。编译器将生成你需要的方法并允许你调用它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接