Эти значения окрашены по-разному, так как они используются в двух разных типах - BOOL
и bool
и представляют собой разные языковые конструкции.
BOOL
- это переопределение макроса для signed char
, что означает, что оно может иметь более двух значений, а сопоставление равно NO
/ FALSE
== 0, YES
/ TRUE
== 1, вы должны быть осторожны при написании логических выражений и рассматривать любое ненулевое значение как истинное. Значения, которые могут быть присвоены BOOL
, определены как макросы и имеют соответствующий цвет.
Между тем, bool
, с другой стороны, является истинным логическим типом и может иметь только два значения - true
и false
. Его значения являются конструкциями на родном языке и окрашены как таковые.
Вот некоторые другие SO обсуждения этой темы:
Есть ли разница между ДА / НЕТ, ИСТИНА / ЛОЖЬ и истиной / ложью в объективе-c?
Objective-C: BOOL vs bool