问题 Objective c布尔值


我想知道目标c中以下值之间的差异:

TRUE(uppercase) - true(lowercase) - yes
FALSE(uppercase) - false(lowercase) - no

它们在IDE中的颜色不同,在使用不同的布尔值时会出现不同的情况吗?

谢谢


10270
2017-08-10 18:46


起源

别 YES 和 NO 在Objective-C中必须始终为大写? - BoltClock♦


答案:


这些值的颜色不同,因为它们有两种不同的类型 - BOOL 和 bool 并且是不同的语言结构。

BOOL 是宏的重新定义 signed char,这意味着它可以有两个以上的值,而映射是 NO/FALSE == 0, YES/TRUE == 1,编写布尔表达式时必须小心,并将任何非零值视为true。可以分配给的值 BOOL 被定义为宏并相应地着色。

与此同时, bool 另一方面,它是一个真正的布尔类型,只能有两个值 - true 和 false。它的值是本地语言结构,并且是这样的。

以下是本主题的其他SO讨论:
在Objective-c中,YES / NO,TRUE / FALSE和true / false之间是否有区别?
Objective-C:BOOL vs bool 


15
2017-08-10 18:53