BOOL

布尔类型

很多语言都有布尔值类型,有的关键字为boolean、有的为bool,表示方式为truefalse

在OC中,布尔类型的关键字为大写BOOL,表示方式为YESNO

使用方式

BOOL类型一般用于表示真假、是否这种情况,如iOS开发中的按钮是否选中、排序是否提前完成等。表示方式如下:

  1. BOOL isSelected = NO;
  2. // 判断方式
  3. if (isSelected) {
  4. NSLog(@"选中");
  5. }

深入理解

当在xcode中输入BOOL时,编译器还联想出了BOOLboolBooleanboolean_t等类型,我们来一一分析下。

BOOL

头文件:objc.h

实际类型:signed char

表示方式:YES \ NO

注意点:BOOL a == 1的时候,才是YES,其他情况均为NO,所以在使用时,慎用a == YES这种方式。

  1. BOOL a = 3;
  2. NSLog(@"%d", a == YES); // 输出0

bool

头文件:stdbool.h

实际类型:_Bool (int)

表示方式:true \ false

  1. bool a = 3;
  2. NSLog(@"%d", a == true); // 输出1

Boolean

头文件:MacTypes.h

实际类型:unsigned char

表示方式:TRUE \ FALSE

注意:与BOOL的情况相同,仅当a == 1时为TRUE

  1. Boolean a = 1;
  2. NSLog(@"%d", a == TRUE);

boolean_t

头文件:boolean.h

实际类型:unsigned int

关于在OC中几种布尔值的区别,可查看这篇在stackoverflow上的回答:

http://stackoverflow.com/questions/14464671/all-kinds-of-booleans-in-objectivec