BOOL, bool, Boolean, NSCFBoolean:
*BOOLBooleanboolNSCFBoolean
statements, to conditionally perform logic or repeat execution. When
evaluating a conditional statement, the value 0 is considered
“false”, while any other value is considered “true”. Because NULL
and nil are defined as 0, conditional statements on these
nonexistent values are also evaluated as “false”.
From the definition in 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)
a bridge to the CFBooleanRef type, which is used to wrap boolean
values for Core Foundation property lists and collections. CFBoolean
defines the constants kCFBooleanTrue and kCFBooleanFalse. Because
CFNumberRef and CFBooleanRef are different types in Core Foundation,
it makes sense that they are represented by different bridging
classes in NSNumber.