views:

70

answers:

1

Hello,

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

+3  A: 

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:
http://stackoverflow.com/questions/615702/is-there-a-difference-between-yes-no-true-false-and-true-false-in-objective-c
http://stackoverflow.com/questions/541289/objective-c-bool-vs-bool

Franci Penov