BOOLBooleanboolNSCFBoolean

  1. bool 是 C99 中定義的資料型別。
  2. 布林值在條件中使用,例如 if 或 while 語句,以有條件地執行邏輯或重複執行。在評估條件語句時,值 0 被視為,而任何其他值被視為。由於 NULL 和 nil 定義為 0,因此對這些不存在的值的條件語句也會被評估為 false
  3. BOOL 是一個 Objective-C 型別,定義為 signed char,巨集為 YES,NO 為 NO,表示 true 和 false

從 objc.h 中的定義:

#if (TARGET_OS_IPHONE && __LP64__)  ||  TARGET_OS_WATCH
typedef bool BOOL;
#else
typedef signed char BOOL; 
// BOOL is explicitly signed so @encode(BOOL) == "c" rather than "C" 
// even if -funsigned-char is used.
#endif

#define YES ((BOOL)1)
#define NO  ((BOOL)0)
  1. NSCFBoolean 是 NSNumber 類叢集中的私有類。它是 CFBooleanRef 型別的橋樑,用於為 Core Foundation 屬性列表和集合包裝布林值。CFBoolean 定義常量 kCFBooleanTrue 和 kCFBooleanFalse。因為 CFNumberRef 和 CFBooleanRef 是 Core Foundation 中的不同型別,所以它們在 NSNumber 中由不同的橋接類表示是有意義的。