大家先来看看objective-c是如何定义布尔类型的,废话不多说,直接看如下截图:
从上图可以了解到:Objective C中的BOOL实际上是一种对带符号的字符(singed char)类型的定义(typedef),它使用8位存储空间(一个字节)。YES定义为1,而NO定义为0(使用#define)。 编译器将BOOL认做8为二进制数,YES 和 NO值只是一种约定。这会引发一个小问题,不过不小心把一个长于1字节的整形复制给BOOL变量,那么只有低位作BOOL值。
例子如下:
BOOL flag=YES;
NSLog(@"%d",flag);
BOOL test=127;
NSLog(@"%d",test);
if (test) {
NSLog(