Wartości te są różnie zabarwione, jak są one wykorzystywane w dwóch różnych typów - BOOL
i bool
i różne konstrukcje językowe.
BOOL
jest makro re-definicja signed char
, co oznacza, że może mieć więcej niż dwie wartości, a jednocześnie odwzorowanie jest NO
/FALSE
== 0, YES
/TRUE
== 1, trzeba być ostrożnym podczas pisania Wyrażenia boolowskie i traktują każdą niezerową wartość jako prawdziwą. Wartości, które można przypisać do BOOL
, są zdefiniowane jako makra i są odpowiednio oznaczone.
Tymczasem, bool
z drugiej strony jest prawdziwym typem boolowskim i może mieć tylko dwie wartości - true
i false
. Jego wartości są rodzimymi konstruktami językowymi i są barwione jako takie.
Oto niektóre inne tak dyskusje w tym temacie:
Is there a difference between YES/NO,TRUE/FALSE and true/false in objective-c?
Objective-C : BOOL vs bool
Nie '' NO' YES' i muszą być zawsze wielkimi literami w Objective-C? – BoltClock