Risposte:
Un modo per farlo è convertire in stringhe (poiché ci sono solo due possibilità, non è difficile):
NSLog(@" %s", BOOL_VAL ? "true" : "false");
Non penso che ci sia un identificatore di formato per i valori booleani.
io raccomanderei
NSLog(@"%@", boolValue ? @"YES" : @"NO");
perché, um, BOOL
s sono chiamati YES
o NO
in Objective-C.
Usa il formattatore intero %d
, che stamperà 0
o 1
:
NSLog(@"%d", myBool);
In Objective-C, il BOOL
tipo è solo un carattere con segno. Da <objc/objc.h>
:
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
Quindi puoi stamparli usando il %d
formattatore Ma questo stamperà solo a 1
o a 0
, non YES
o NO
.
Oppure puoi semplicemente usare una stringa, come suggerito in altre risposte.
Le stringhe di formato da utilizzare con NSLog e [NSString stringWithFormat] sono documentate qui:
BOOL / bool / boolean non sono nemmeno menzionati ...
Basta aggiungere la funzione seguente e passarle il BOOL
valore e il metodo restituirà il fileNSString
- (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
}
Credo che il modo più semplice per farlo sia:
NSLog(@" %@", @(BOOL_VAL));
@(espressione)
Valuta dinamicamente l'espressione boxed e restituisce il valore letterale dell'oggetto appropriato in base al suo valore (ad esempio NSString per const char *, NSNumber per int, ecc.).