我有readonly
属性,我想声明与其他属性类似:
@property (nonatomic, readonly) MyThing *thing;
通常,我绝对不想要为这些属性自动合成实例变量和getter方法。在这种情况下,如果我忘记为它们编写一个显式的getter,我就会出错,我希望编译器告诉我并拒绝编译(或者至少发出警告)。
在这种情况下,使用@property
声明是不好的做法?我应该改用:
-(MyThing*) myThing;
或者,也就是说,我可以通过某种方式告诉属性列表@property
中的(nonatomic, readonly, dont_synthesize_this_one_please)
,我绝对不希望实例变量被合成化,而且它是如果我错过了吸气剂会出错?
答案 0 :(得分:1)
不,没有特殊属性。如果你没有覆盖吸气剂,那么将合成ivar。
按照您的建议使属性成为常规方法是最佳解决方案。 您还可以尝试打开以下编译器警告:
但随后您将收到所有合成属性的警告。
您也可以单独为每个文件启用-Wobjc-missing-property-synthesis