Objective c булевыми значениями - PullRequest
11 голосов
/ 10 августа 2010

Мне было интересно, в чем разница между следующими значениями в цели c:

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

они по-разному окрашены в IDE, бывают ли разные ситуации, когда вы используете разные логические значения?

Спасибо

1 Ответ

15 голосов
/ 10 августа 2010

Эти значения окрашены по-разному, так как они используются в двух разных типах - BOOL и bool и представляют собой разные языковые конструкции.

BOOL - это переопределение макроса для signed char, что означает, что оно может иметь более двух значений, а сопоставление равно NO / FALSE == 0, YES / TRUE == 1, вы должны быть осторожны при написании логических выражений и рассматривать любое ненулевое значение как истинное. Значения, которые могут быть присвоены BOOL, определены как макросы и имеют соответствующий цвет.

Между тем, bool, с другой стороны, является истинным логическим типом и может иметь только два значения - true и false. Его значения являются конструкциями на родном языке и окрашены как таковые.

Вот некоторые другие SO обсуждения этой темы:
Есть ли разница между ДА / НЕТ, ИСТИНА / ЛОЖЬ и истиной / ложью в объективе-c?
Objective-C: BOOL vs bool

...