object-c中的BOOL类型

Posted ZHOU YANG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了object-c中的BOOL类型相关的知识,希望对你有一定的参考价值。

    object-c中的布尔类型比C语言中的bool类型早了10年,它具有YES和NO两种值。在object-c中的布尔类型BOOL实际上是一种带符号的字符类型(signed char),它使用的空间是1byte,即8bit,其中YES定义为1,NO定义为0。将大于1字节的整形数(比如short或者int)赋给BOOL变量,会被截断处理,只保留末尾的8个bit。

    以下是object-c中使用BOOL类型的例子:

#import <Foundation/Foundation.h>
//比较两个int数是否一样
BOOL areINTsDifferent(int thing1,int thing2){
    if(thing1==thing2)
        return NO;
    else
        return YES;
}
//返回BOOL类型的数对应的NSString字符串
NSString * boolString(BOOL yesNo){
    if(yesNo==YES)
        return @"YES";
    else
        return @"NO";
    
}
int main(int argc, const char * argv[]) {
    BOOL areTheyDifferent ;
    areTheyDifferent= areINTsDifferent(6,6);
    //下面的%@表示NSString占位符
    NSLog(@"are %d and %d different? %@",6,6,boolString(areTheyDifferent));
    areTheyDifferent = areINTsDifferent(23,42);
    NSLog(@"are %d and %d different? %@",23,42,boolString(areTheyDifferent));
    return 0;
}

输出的结果:

2016-04-04 23:18:48.964 hello-obj[1267:84194] are 6 and 6 different? NO
2016-04-04 23:18:48.965 hello-obj[1267:84194] are 23 and 42 different? YES

 

以上是关于object-c中的BOOL类型的主要内容,如果未能解决你的问题,请参考以下文章

Operator '||' cannot be applied to operands of type 'bool?' and 'bool?'(代码片段

Operator '||' cannot be applied to operands of type 'bool?' and 'bool?'(代码片段

Object-C基础—— 函数

object-c 简单入门

Object-C 中的 Swift 代码:“ClassName”没有可见的@interface 声明选择器“alloc”

代码片段 - Golang 实现集合操作