Antworten:
Eine Möglichkeit besteht darin, in Zeichenfolgen zu konvertieren (da es nur zwei Möglichkeiten gibt, ist dies nicht schwierig):
NSLog(@" %s", BOOL_VAL ? "true" : "false");
Ich glaube nicht, dass es einen Formatbezeichner für boolesche Werte gibt.
ich würde empfehlen
NSLog(@"%@", boolValue ? @"YES" : @"NO");
weil, ähm, BOOL
s aufgerufen werden YES
oder NO
in Objective-C.
Verwenden Sie den Ganzzahlformatierer %d
, der entweder 0
oder Folgendes druckt 1
:
NSLog(@"%d", myBool);
In Objective-C ist der BOOL
Typ nur ein vorzeichenbehaftetes Zeichen. Von <objc/objc.h>
:
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
Sie können sie also mit dem %d
Formatierer drucken. Dabei wird jedoch nur a 1
oder a gedruckt 0
, nicht YES
oder NO
.
Oder Sie können einfach eine Zeichenfolge verwenden, wie in anderen Antworten vorgeschlagen.
Formatzeichenfolgen zur Verwendung mit NSLog und [NSString stringWithFormat] sind hier dokumentiert:
BOOL / bool / boolean werden nicht einmal erwähnt ...
Fügen Sie einfach die folgende Funktion hinzu und übergeben Sie sie. Der BOOL
Wert und die Methode geben die zurückNSString
- (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
}
Ich glaube, der einfachste Weg, dies zu tun, ist:
NSLog(@" %@", @(BOOL_VAL));
@(Ausdruck)
Wertet den Boxed-Ausdruck dynamisch aus und gibt das entsprechende Objektliteral basierend auf seinem Wert zurück (z. B. NSString für const char *, NSNumber für int usw.).