Objective-C で 2 つの BOOL 値を比較したい。
以下のコードの(3)~(6)が動作することがわかりました。
(1)-(2) は BOOL が単にsigned char
.
bool
(3) 機能し、非常に読みやすいですが、objective-c ではないと思います。Objective-C コードでの
使用は良いですか?bool
Objective-C で 2 つの BOOL 値を比較する安全で良い方法はどれですか?
他に比較する良い方法はありますか?
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));
結果:
(1) 0
(2) 0
(3) 1
(4) 1
(5) 1
(6) 1