Respostas:
Uma maneira de fazer isso é converter para strings (já que existem apenas duas possibilidades, não é difícil):
NSLog(@" %s", BOOL_VAL ? "true" : "false");
Eu não acho que exista um especificador de formato para valores booleanos.
eu recomendaria
NSLog(@"%@", boolValue ? @"YES" : @"NO");
porque, hum, BOOL
s são chamados YES
ou NO
em Objective-C.
Use o formatador inteiro %d
, que imprimirá 0
ou 1
:
NSLog(@"%d", myBool);
No Objective-C, o BOOL
tipo é apenas um caractere assinado. De <objc/objc.h>
:
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
Assim, você pode imprimi-los usando o %d
formatador Mas isso imprimirá apenas a 1
ou a 0
, não YES
ou NO
.
Ou você pode simplesmente usar uma string, conforme sugerido em outras respostas.
As seqüências de formato para uso com NSLog e [NSString stringWithFormat] estão documentadas aqui:
BOOL / bool / boolean nem são mencionados ...
Basta adicionar a função abaixo e passar o BOOL
valor e o método retornará o valorNSString
- (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
}
Acredito que a maneira mais fácil de fazer isso é:
NSLog(@" %@", @(BOOL_VAL));
@(expressão)
Avalia dinamicamente a expressão em caixa e retorna o literal do objeto apropriado com base em seu valor (por exemplo, NSString para const char *, NSNumber para int, etc.).