我想问一下Cocoa 项目中局部变量的命名约定。 BOOL
以下哪个是首选?
// Style #1
BOOL isNightModeEnabled = NO;
// Style #2
BOOL nightModeEnabled = NO;
谢谢!
我想问一下Cocoa 项目中局部变量的命名约定。 BOOL
以下哪个是首选?
// Style #1
BOOL isNightModeEnabled = NO;
// Style #2
BOOL nightModeEnabled = NO;
谢谢!
只是想多了一点。
Apple 自己的 Cocoa 方法不会BOOL
为用作参数的变量添加前缀:
... whenHighlighted:(BOOL)highlighted
... animated:(BOOL)animated
这同样适用于 Xcode 的 setter 自动完成功能。因此,似乎给局部变量加上前缀is
并不是一个好主意,因为最终会得到一些以前缀为前缀的变量,is
而另一些则不是。因此 using是一个很好的 gettersis
命名约定,而不是局部变量。
风格 2 不错。它使属性和 KVO 样式的名称更好读:
-(void)setNightModeEnabled;
-(BOOL)nightModeEnabled;
或者
@property (assign, nonatomic, getter=isNightModeEnabled) BOOL nightModeEnabled;
检查文档:可可命名指南。
我个人的偏好是:
bool isNightModeEnabled = false;
它读起来更像英语,把“是”放进去。
我总是优先使用 C99 布尔类型而不是 Apple,BOOL
除非 Cocoa API 要求这样做。这是因为BOOL
它只是一个 char 的 typedef,这对于布尔值来说可能是有问题的。例如,以下单元测试失败,即使它不是您对 C 的期望
-(void) testBool
{
int a = 513;
int b = 257;
STAssertTrue(a - b, @"Should be true");
}
原因是 a - b 是 256,当转换为BOOL
参数类型时,所有非零位都将丢失。如果第一个参数STAssertTrue()
是bool
,则强制转换将按预期工作。