BOOL
布尔类型
很多语言都有布尔值类型,有的关键字为boolean
、有的为bool
,表示方式为true
、false
。
在OC中,布尔类型的关键字为大写的BOOL
,表示方式为YES
、NO
。
使用方式
BOOL类型一般用于表示真假、是否这种情况,如iOS开发中的按钮是否选中、排序是否提前完成等。表示方式如下:
BOOL isSelected = NO;
// 判断方式
if (isSelected) {
NSLog(@"选中");
}
深入理解
当在xcode中输入BOOL时,编译器还联想出了BOOL
、bool
、Boolean
、boolean_t
等类型,我们来一一分析下。
BOOL
头文件:objc.h
实际类型:signed char
表示方式:YES
\ NO
注意点:当BOOL a == 1
的时候,才是YES,其他情况均为NO,所以在使用时,慎用a == YES
这种方式。
BOOL a = 3;
NSLog(@"%d", a == YES); // 输出0
bool
头文件:stdbool.h
实际类型:_Bool (int)
表示方式:true
\ false
bool a = 3;
NSLog(@"%d", a == true); // 输出1
Boolean
头文件:MacTypes.h
实际类型:unsigned char
表示方式:TRUE
\ FALSE
注意:与BOOL的情况相同,仅当a == 1时为TRUE
Boolean a = 1;
NSLog(@"%d", a == TRUE);
boolean_t
头文件:boolean.h
实际类型:unsigned int
关于在OC中几种布尔值的区别,可查看这篇在stackoverflow上的回答:
http://stackoverflow.com/questions/14464671/all-kinds-of-booleans-in-objectivec