Sicherer und guter Vergleich von 2 BOOL-Werten in Objective-c?

Ich möchte 2 BOOL-Werte in Ziel-c vergleichen.

Ich fand heraus, dass (3) - (6) des folgenden Codes funktioniert.
(1) - (2) funktioniert nicht, weil BOOL gerecht istsigned char.

(3) funktioniert und ist sehr gut lesbar, aber ich denkebool ist nicht objektiv-c.
Verwendenbool in Objective-C-Code ist gut?

Was ist der sichere und gute Weg, um 2 BOOL-Werte in Objective-C zu vergleichen?
Gibt es andere bessere Vergleichsmöglichkeiten?

BOOL b = YES;
BOOL c = 2;

NSLog(@"(1) %d", b == c); // not work
NSLog(@"(2) %d", (BOOL)b == (BOOL)c); // not work
NSLog(@"(3) %d", (bool)b == (bool)c);
NSLog(@"(4) %d", !b == !c);
NSLog(@"(5) %d", !!b == !!c);
NSLog(@"(6) %d", (b != 0) == (c != 0));

Ergebnisse:

(1) 0
(2) 0
(3) 1
(4) 1
(5) 1
(6) 1

Antworten auf die Frage(6)

Ihre Antwort auf die Frage