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, BOOLs sono chiamati YESo NOin Objective-C.
Usa il formattatore intero %d, che stamperà 0o 1:
NSLog(@"%d", myBool);
In Objective-C, il BOOLtipo è 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 %dformattatore Ma questo stamperà solo a 1o a 0, non YESo 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 BOOLvalore 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.).