Respuestas:
Una forma de hacerlo es convertir a cadenas (dado que solo hay dos posibilidades, no es difícil):
NSLog(@" %s", BOOL_VAL ? "true" : "false");
No creo que haya un especificador de formato para valores booleanos.
yo recomendaria
NSLog(@"%@", boolValue ? @"YES" : @"NO");
porque, um, BOOL
s se llaman YES
o NO
en Objective-C.
Utilice el formateador de enteros %d
, que imprimirá 0
o 1
:
NSLog(@"%d", myBool);
En Objective-C, el BOOL
tipo es solo un carácter firmado. De <objc/objc.h>
:
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
Entonces puedes imprimirlos usando el %d
formateador Pero eso solo imprimirá a 1
o a 0
, no YES
o NO
.
O simplemente puede usar una cadena, como se sugiere en otras respuestas.
Las cadenas de formato para su uso con NSLog y [NSString stringWithFormat] se documentan aquí:
BOOL / bool / boolean ni siquiera se mencionan ...
Simplemente agregue la función a continuación y pásele el BOOL
valor y el método devolverá elNSString
- (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
}
Creo que la forma más sencilla de hacer esto es:
NSLog(@" %@", @(BOOL_VAL));
@(expresión)
Evalúa dinámicamente la expresión en caja y devuelve el objeto literal apropiado en función de su valor (es decir, NSString para const char *, NSNumber para int, etc.).