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 中由不同的桥接类表示是有意义的。