Jawaban:
Salah satu cara untuk melakukannya adalah dengan mengonversi ke string (karena hanya ada dua kemungkinan, tidak sulit):
NSLog(@" %s", BOOL_VAL ? "true" : "false");
Saya tidak berpikir ada penentu format untuk nilai boolean.
saya ingin merekomendasikan
NSLog(@"%@", boolValue ? @"YES" : @"NO");
karena, um, BOOL
s dipanggil YES
atau NO
di Objective-C.
Gunakan pemformat integer %d
, yang akan mencetak salah satu 0
atau 1
:
NSLog(@"%d", myBool);
Di Objective-C, BOOL
jenisnya hanyalah karakter bertanda tangan. Dari <objc/objc.h>
:
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
Jadi Anda bisa mencetaknya menggunakan %d
formatter Tapi itu hanya akan mencetak a 1
atau a 0
, bukan YES
atau NO
.
Atau Anda bisa menggunakan string, seperti yang disarankan dalam jawaban lain.
String format untuk digunakan dengan NSLog dan [NSString stringWithFormat] didokumentasikan di sini:
BOOL / bool / boolean bahkan tidak disebutkan ...
Cukup tambahkan fungsi di bawah ini dan berikan BOOL
nilai dan metode akan mengembalikanNSString
- (NSString *)boolValueToString:(BOOL)theBool {
if (theBool == 0)
return @"NO"; // can change to No, NOOOOO, etc
else
return @"YES"; // can change to YEAH, Yes, YESSSSS etc
}
Saya yakin cara termudah untuk melakukannya adalah:
NSLog(@" %@", @(BOOL_VAL));
@(ekspresi)
Secara dinamis mengevaluasi ekspresi kotak dan mengembalikan literal objek yang sesuai berdasarkan nilainya (yaitu NSString untuk const char *, NSNumber untuk int, dll.).
Saya membuat kategori NSString dengan ini
+ (instancetype)stringWithBool:(BOOL)boolValue {
return boolValue ? @"YES" : @"NO";
}
Dan gunakan seperti ini:
[NSString stringWithBool:boolValue];