【问题标题】:iOS readonly and retain are mutually exclusiveiOS readonly 和 retain 是互斥的
【发布时间】:2014-02-28 21:39:06
【问题描述】:

我想要一个强大的只读属性。当我使用此代码时:

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

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

【问题讨论】:

  • 你为什么要那个?大概你是在私下声明财产readwrite(或者是失踪了)?
  • 我希望其他类只能获取测试属性而不能设置它
  • 好的,但是您必须在某处设置值或返回值 - 那在哪里?
  • 在init方法中我可以通过_test来设置吗?
  • 现在找不到参考,但这是 Xcode 5.0.2 附带的 clang 版本中的一个已知错误。使用 5.1 beta 这个(错误)错误不再出现;)

标签: objective-c


【解决方案1】:

在您的延续类别中创建一个属性,将变量重新定义为readwrite

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 2012-04-24
    • 2018-05-23
    • 2012-09-22
    • 2011-09-22
    • 1970-01-01
    相关资源
    最近更新 更多