【问题标题】:iOS override custom getter/setter in property variable declarationiOS 在属性变量声明中覆盖自定义 getter/setter
【发布时间】:2014-07-07 17:11:46
【问题描述】:

我一直在与另一个远程工作的开发人员一起编写一些代码。到目前为止,他们的代码充满了错误并且组合起来很糟糕......在进一步检查他们的一些代码后,我发现了一些我没有看到其他人做过的事情(当然我不是 iOS 专家,并且每天发现新事物)。

在他们声明的一个属性中,它被写成

@property (nonatomic, strong, getter = thenewPasswordActivity) IBOutlet UIActivityIndicatorView * newPasswordActivity;

我发现他们正在覆盖来自 this post 的自定义 getter 方法,但不知道为什么,因为没有一次使用过“thenewPasswordActivity”。

话虽如此,我的主要问题是定义这样的自定义 getter 方法的总体收益是什么。这个自定义 getter 是否允许人们在不使用 self.newPasswordActivity(不进行综合)的情况下访问该属性,而只引用 thenewPasswordActivity

【问题讨论】:

  • AFAIK,它只是改变了吸气剂的名称。
  • 感谢您的回复。这就是我的假设,但当它不被使用时似乎毫无意义,她使用了 self.blablabla 大约 20 次不同的时间。 =/
  • 我不确定,所以我建议你等着看是否有人反驳我的想法。

标签: ios overriding getter-setter


【解决方案1】:

这实际上是有道理的。来自Transitioning to ARC Release Notes

您不能为访问者指定以new 开头的名称。这反过来 意味着你不能,例如,声明一个名字 以 new 开头,除非您指定不同的 getter:

// Won't work:
@property NSString *newTitle;
// Works:
@property(getter=theNewTitle) NSString *newTitle;

当然,您可以重命名该属性并选择其他名称 不以“新”开头的...

【讨论】:

  • 哈!好的谢谢!我完全没有注意到这个名字以 new 开头。是的,更好的命名约定会简单得多。
猜你喜欢
  • 1970-01-01
  • 2018-11-08
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
  • 2011-03-21
  • 2021-11-06
  • 2014-04-08
  • 1970-01-01
相关资源
最近更新 更多