2

我有一些readonly属性,我想与其他属性类似地声明:

@property (nonatomic, readonly) MyThing *thing;

通常,我绝对希望为这些属性自动合成实例变量和 getter 方法。在这种情况下,如果我忘记为它们写一个显式的 getter,我就犯了一个错误,我希望编译器告诉我并拒绝编译(或者至少发出警告)。

在这种情况下,使用@property声明是不好的做法吗?我应该改用:

-(MyThing*) myThing;

或者,有什么方法可以@property在属性列表(nonatomic, readonly, dont_synthesize_this_one_please)中告诉我我绝对不希望合成一个实例变量,如果我错过了 getter,这是一个错误?

4

1 回答 1

1

不,没有特殊属性。如果不覆盖 getter,则将合成 ivar。

按照您的建议使该属性成为正常方法是最好的解决方案。您还可以尝试打开以下编译器警告:

隐式综合属性

但随后您将收到所有合成属性的警告。

您也可以为每个文件单独打开它-Wobjc-missing-property-synthesis

于 2014-07-08T14:46:09.550 回答