【问题标题】:Why properties still work without synthesize?为什么属性在没有合成的情况下仍然有效?
【发布时间】:2017-01-18 04:28:38
【问题描述】:

我有.h

@property (nonatomic) NSString *yourMom;

然后在.m

没有合成! 在 viewdidload 中直接访问:

_yourMom = @"Sally";

这无需合成即可工作。为什么?

【问题讨论】:

标签: ios objective-c properties


【解决方案1】:
Objective-C @properties 在未显式实现时默认合成。

除非您另外指定,否则合成的实例变量与属性具有相同的名称,但带有下划线前缀。例如,对于名为 firstName 的属性,合成的实例变量将称为 _firstName。

请阅读来自 Apple 的 document。它包含您需要的全面信息。

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
  • @JanChrbolka 感谢您的推荐。我刚刚编辑了我的答案:)
  • @martinlee 对这种答案提出质疑,不要单独更新答案。
猜你喜欢
  • 2019-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-09
  • 2019-01-16
  • 2011-05-27
相关资源
最近更新 更多