122 votes

Chaîne de formatage objectif c pour booléen?

Quel formateur est utilisé pour les valeurs booléennes?

MODIFIER:

Exemple: NSLog(@" ??", BOOL_VAL); , qu'est-ce que ?? ?

176voto

Michael Myers Points 82361

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.

71voto

Yuji Points 26887

je recommanderais

 NSLog(@"%@", boolValue ? @"YES" : @"NO");
 

parce que, um, BOOL s sont appelés YES ou NO dans Objective-C.

54voto

Erin Geyer Points 161

Utilisez le formateur entier %d qui imprimera soit 0 ou 1 :

 NSLog(@"%d", myBool);
 

23voto

mipadi Points 135410

En Objective-C, le type BOOL est simplement 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 en utilisant le formateur %d 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.

22voto

gigahari Points 293

Ajouter cette macro à votre fichier .h

 static inline NSString* NSStringFromBOOL(BOOL aBool) {
    return aBool? @"YES" : @"NO"; }
 

Maintenant, vous êtes prêt à partir...

 NSLog(@"%@", NSStringFromBOOL(BOOL_VAL) );
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X