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