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, BOOLs aufgerufen werden YESoder NOin Objective-C.
Verwenden Sie den Ganzzahlformatierer %d, der entweder 0oder Folgendes druckt 1:
NSLog(@"%d", myBool);
In Objective-C ist der BOOLTyp 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 %dFormatierer drucken. Dabei wird jedoch nur a 1oder a gedruckt 0, nicht YESoder 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 BOOLWert 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.).