12

I was wondering what the difference was between the following values in objective c:

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

they are colored differently in the IDE, are there different situations when you would use the different boolean values?

Thanks

Vladimir
  • 170,431
  • 36
  • 387
  • 313
Dave C
  • 399
  • 2
  • 6
  • 13

1 Answers1

16

These values are colored differently, as they are used in two different types - BOOL and bool and are different language constructs.

BOOL is a macro re-definition of signed char, which means it can have more than two values, and while the mapping is NO/FALSE == 0, YES/TRUE == 1, you have to be careful when writing boolean expressions and treat any non-zero value as true. Values that can be assigned to BOOL are defined as macros and are colored accordingly.

Meanwhile, bool on the other hand is a true boolean type and can have only two values - true and false. Its values are native language constructs and are colored as such.

Here are some other SO discussions of this topic:
Is there a difference between YES/NO,TRUE/FALSE and true/false in objective-c?
Objective-C : BOOL vs bool

Community
  • 1
  • 1
Franci Penov
  • 74,861
  • 18
  • 132
  • 169