布尔
因为 nil
解析为 NO
,所以没有必要在条件中与它进行比较。永远不要直接和 YES
进行比较,因为 YES
被定义为 1,而 BOOL
可以多达 8 位。
这使得整个文件有更多的一致性和更大的视觉清晰度。
推荐:
if (!someObject) {
}
反对:
if (someObject == nil) {
}
对于 BOOL
来说, 这有两种用法:
if (isAwesome)
if (![someObject boolValue])
反对:
if ([someObject boolValue] == NO)
if (isAwesome == YES) // 永远别这么做
如果一个 BOOL
属性名称是一个形容词,属性可以省略 “is” 前缀,但为 get 访问器指定一个惯用的名字,例如:
@property (assign, getter=isEditable) BOOL editable;
内容和例子来自 [Cocoa 命名指南][Booleans_1] 。
[Booleans_1]:https://developer.apple.com/library/mac/# documentation/Cocoa/Conceptual/CodingGuidelines/Articles/NamingIvarsAndTypes.html# //apple_ref/doc/uid/20001284-BAJGIIJE