我知道在Objective-C中声明
但访问这个属性的最佳方式是什么?我理解对于setter方法和非
再次强调,我特别关注getter的惯例:我理解应该使用
这是语言演变过程中的意外副作用吗?
BOOL
属性的标准方式是:@property (nonatomic, getter=isWhatever) BOOL whatever;
,这也被证实是现今最常用的方式(见这个问题)。但访问这个属性的最佳方式是什么?我理解对于setter方法和非
BOOL
属性,使用点语法优于[someObject someProperty]
,但这是否使得定义自定义getter名称变得毫无意义?再次强调,我特别关注getter的惯例:我理解应该使用
self.whatever
,这会让[self isWhatever]
没有用处,而getter=isWhatever
变得无意义,这似乎是自相矛盾的。这是语言演变过程中的意外副作用吗?
self.isCharacter
看起来更好,但是使用点符号来混淆方法名不是被反对的吗?啊哈哈哈,也许BOOL
是个例外。 - Andrewcount
或length
等方法则可以使用,并且Xcode自动补全功能也支持。基本上,该方法适用于那些本来就是属性的方法。总之,编写易于理解的代码是最重要的。 - zaphBOOL
的 setter 有副作用,类似于 Swift 中的didSet
属性观察器呢?如果这些副作用不打算在其公共 API 中公开,那该怎么办? - AndrewNSURLConnecton
上的start
方法,因此不应使用点符号表示法。但如果您不想使用点语法,也可以不用。 - zaph