欢迎访问成人高考招生网第一时间发布成人高考动态

老师在线咨询系统
成人高考招生网 > 教育动态 > 正文

Objective-C中如何正确使用BOOL类型

2015-12-07 17:13 来源:成人高考招生网 点击数:

Objective-C中如何正确使用BOOL类型

  不同于C语言的TRUE、FALSE,Objective-C 中使用YES、NO来表示BOOL类型。BOOL由8位的unsigned char型数值表示,8位全0就是NO,否则就是YES。知道了这点以后,使用BOOL值的时候就要注意了,比如下述代码:

  BOOL result = [self isValid];

  if (result == YES) {

  //do something

  }

  就存在隐患,因为,不是NO(8位不全为0)就表示YES,result的值可能也表示YES,但result并不一定等于YES!!

  更直白的例子:

  BOOL result = 8960;

  if (result == YES) {

  printf("YES");

  }

  这里会输出YES吗?不会的。为什么呢?8960是非0值,它不是逻辑真吗?还记得上面说过BOOL是一个8位的整数吗?因为8960用二进制表示是大于8位的,也就是说高位无效,只保留8960 的低八位,8960的低八位恰好全都是0,因此result就是NO 了。

  总结一下,非零值未必是BOOL的YES,但是0一定是NO。

  上述判断正确的写法应该是:

  BOOL result = [self isValid];

  if (result) {

  //do something

  }

  蓝鸥iOS开发,国内口碑最好的iOS培训学院,详情请咨询官网我们是 一群热爱IT的年轻人,如果你也爱IT、爱iOS开发,欢迎前来蓝鸥iOS开发培训中心参观学习,让我们共同为梦想发声。

来源:成人高考招生网-教育动态责编:互联网

推荐导读