Réponses:
Une façon de le faire est de convertir en chaînes (puisqu'il n'y a que deux possibilités, ce n'est pas difficile):
NSLog(@" %s", BOOL_VAL ? "true" : "false");
Je ne pense pas qu'il existe un spécificateur de format pour les valeurs booléennes.
je recommanderais
NSLog(@"%@", boolValue ? @"YES" : @"NO");
parce que, um, BOOL
s sont appelés YES
ou NO
en Objective-C.
Utilisez le formateur d'entiers %d
, qui imprimera soit 0
soit 1
:
NSLog(@"%d", myBool);
En Objective-C, le BOOL
type est juste un caractère signé. De <objc/objc.h>
:
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
Vous pouvez donc les imprimer à l'aide du %d
formateur. Mais cela n'imprimera qu'un 1
ou un 0
, pas YES
ou NO
.
Ou vous pouvez simplement utiliser une chaîne, comme suggéré dans d'autres réponses.
Les chaînes de format à utiliser avec NSLog et [NSString stringWithFormat] sont documentées ici:
BOOL / bool / boolean ne sont même pas mentionnés ...
Ajoutez simplement la fonction ci-dessous et transmettez-lui la BOOL
valeur et la méthode renverra leNSString
- (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
}
Je pense que le moyen le plus simple de le faire est:
NSLog(@" %@", @(BOOL_VAL));
@(expression)
Évalue dynamiquement l'expression encadrée et renvoie le littéral d'objet approprié en fonction de sa valeur (c'est-à-dire NSString pour const char *, NSNumber pour int, etc.).