Réponses:
Voici comment je le fais:
BOOL flag = YES;
NSLog(flag ? @"Yes" : @"No");
?:
est l'opérateur conditionnel ternaire de la forme:
condition ? result_if_true : result_if_false
Remplacez les chaînes de journal réelles en conséquence, le cas échéant.
Les booléens ne sont que des entiers, ce ne sont que des valeurs transtypées comme ...
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
BOOL value = YES;
NSLog(@"Bool value: %d",value);
Si la sortie est 1, OUI sinon NON
signed char
. Votre expression pourrait potentiellement mal évaluer si une valeur autre que 0 ou 1 est fournie.
Notez que dans Swift, vous pouvez simplement faire
let testBool: Bool = true
NSLog("testBool = %@", testBool.description)
Cela enregistrera testBool = true
print()
.
Bien que ce ne soit pas une réponse directe à la question de Devang, je pense que la macro ci-dessous peut être très utile pour les personnes qui cherchent à enregistrer des BOOLs. Cela déconnectera la valeur du bool et l'étiquetera automatiquement avec le nom de la variable.
#define LogBool(BOOLVARIABLE) NSLog(@"%s: %@",#BOOLVARIABLE, BOOLVARIABLE ? @"YES" : @"NO" )
BOOL success = NO;
LogBool(success); // Prints out 'success: NO' to the console
success = YES;
LogBool(success); // Prints out 'success: YES' to the console
FixIt d'Apple a fourni% hhd, ce qui m'a donné correctement la valeur de mon BOOL.
Nous pouvons vérifier de quatre façons
La première façon est
BOOL flagWayOne = TRUE;
NSLog(@"The flagWayOne result is - %@",flagWayOne ? @"TRUE":@"FALSE");
La deuxième façon est
BOOL flagWayTwo = YES;
NSLog(@"The flagWayTwo result is - %@",flagWayTwo ? @"YES":@"NO");
La troisième façon est
BOOL flagWayThree = 1;
NSLog(@"The flagWayThree result is - %d",flagWayThree ? 1:0);
La quatrième façon est
BOOL flagWayFour = FALSE; // You can set YES or NO here.Because TRUE = YES,FALSE = NO and also 1 is equal to YES,TRUE and 0 is equal to FALSE,NO whatever you want set here.
NSLog(@"The flagWayFour result is - %s",flagWayFour ? YES:NO);
Dans Swift, vous pouvez simplement imprimer une valeur booléenne et elle sera affichée comme true
ou false
.
let flag = true
print(flag) //true
Voici comment vous pouvez le faire:
BOOL flag = NO;
NSLog(flag ? @"YES" : @"NO");
//assuming b is BOOL. ternary operator helps us in any language.
NSLog(@"result is :%@",((b==YES)?@"YES":@"NO"));
#define StringFromBOOL(b) ((b) ? @"YES" : @"NO")