布尔

因为 nil 解析为 NO,所以没有必要在条件中与它进行比较。永远不要直接和 YES 进行比较,因为 YES 被定义为 1,而 BOOL 可以多达 8 位。

这使得整个文件有更多的一致性和更大的视觉清晰度。

推荐:

  1. if (!someObject) {
  2. }

反对:

  1. if (someObject == nil) {
  2. }

对于 BOOL 来说, 这有两种用法:

  1. if (isAwesome)
  2. if (![someObject boolValue])

反对:

  1. if ([someObject boolValue] == NO)
  2. if (isAwesome == YES) // 永远别这么做

如果一个 BOOL 属性名称是一个形容词,属性可以省略 “is” 前缀,但为 get 访问器指定一个惯用的名字,例如:

  1. @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