什么是标准的Objective-C BOOL getter约定?

时间:2015-04-21 20:32:56

标签: objective-c cocoa naming-conventions

我知道@property (nonatomic, getter=isWhatever) BOOL whatever;是目前在Objective-C中声明BOOL属性的标准方法(如this question所示)。

但访问此属性的首选方法是什么?我的理解是,对于setter和非BOOL属性,点符号优先于[someObject someProperty],但是这不会使定义一个自定义getter名称变得多余吗?

重申一下,我特别感兴趣的是getter惯例是什么:我的理解是self.whatever,这会使[self isWhatever]未使用,getter=isWhatever无意义,这似乎是矛盾的。

语言随着时间的推移是否会产生意想不到的副作用?

2 个答案:

答案 0 :(得分:4)

为布尔选择一个更好的名称而不是"无论什么"会给出一个更好的主意。示例:character vs isCharacterself.isCharacter似乎很好,可以说比self.character好。

似乎使用"点符号"不会改变布尔值"是"前缀约定。

答案 1 :(得分:2)

IMHO点语法应始终用于方法的属性和括号语法(您不应该调用属性(getter / setter)方法)并且“is”应该为所有BOOL属性(不仅仅是getter)添加前缀。您的属性的正确语法将是myObj.isWhatever。