Antworten:
So mache ich das:
BOOL flag = YES;
NSLog(flag ? @"Yes" : @"No");
?:
ist der ternäre bedingte Operator des Formulars:
condition ? result_if_true : result_if_false
Ersetzen Sie die tatsächlichen Protokollzeichenfolgen gegebenenfalls entsprechend.
Boolesche Werte sind nichts anderes als ganze Zahlen. Sie sind nur typgesteuerte Werte wie ...
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
BOOL value = YES;
NSLog(@"Bool value: %d",value);
Wenn der Ausgang 1 ist, JA, andernfalls NEIN
signed char
. Ihr Ausdruck kann möglicherweise falsch ausgewertet werden, wenn ein anderer Wert als 0 oder 1 angegeben wird.
Beachten Sie, dass Sie dies in Swift einfach tun können
let testBool: Bool = true
NSLog("testBool = %@", testBool.description)
Dies wird protokolliert testBool = true
print()
.
Obwohl dies keine direkte Antwort auf Devangs Frage ist, glaube ich, dass das folgende Makro für Leute, die BOOLs protokollieren möchten, sehr hilfreich sein kann. Dadurch wird der Wert des Bools abgemeldet und automatisch mit dem Namen der Variablen gekennzeichnet.
#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
Apples FixIt lieferte% hhd, was mir den Wert meines BOOL korrekt gab.
Wir können auf vier Arten überprüfen
Der erste Weg ist
BOOL flagWayOne = TRUE;
NSLog(@"The flagWayOne result is - %@",flagWayOne ? @"TRUE":@"FALSE");
Der zweite Weg ist
BOOL flagWayTwo = YES;
NSLog(@"The flagWayTwo result is - %@",flagWayTwo ? @"YES":@"NO");
Der dritte Weg ist
BOOL flagWayThree = 1;
NSLog(@"The flagWayThree result is - %d",flagWayThree ? 1:0);
Der vierte Weg ist
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);
In Swift können Sie einfach einen booleschen Wert drucken, der als true
oder angezeigt wird false
.
let flag = true
print(flag) //true
So können Sie es machen:
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")