Câu trả lời:
Đây là cách tôi làm điều đó:
BOOL flag = YES;
NSLog(flag ? @"Yes" : @"No");
?:
là toán tử điều kiện ternary có dạng:
condition ? result_if_true : result_if_false
Thay thế chuỗi nhật ký thực tế cho phù hợp khi thích hợp.
Booleans không là gì ngoài số nguyên, chúng chỉ là các giá trị được đúc như ...
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
BOOL value = YES;
NSLog(@"Bool value: %d",value);
Nếu đầu ra là 1, CÓ thì KHÔNG
signed char
. Biểu thức của bạn có khả năng có thể đánh giá không chính xác nếu giá trị khác 0 hoặc 1 được cung cấp.
Mặc dù đây không phải là câu trả lời trực tiếp cho câu hỏi của Devang, tôi tin rằng macro dưới đây có thể rất hữu ích cho những người muốn đăng nhập BOOLs. Điều này sẽ đăng xuất giá trị của bool cũng như tự động gắn nhãn với tên của biến.
#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 của Apple đã cung cấp% hhd, chính xác cho tôi giá trị BOOL của tôi.
Chúng tôi có thể kiểm tra bằng bốn cách
Cách đầu tiên là
BOOL flagWayOne = TRUE;
NSLog(@"The flagWayOne result is - %@",flagWayOne ? @"TRUE":@"FALSE");
Cách thứ hai là
BOOL flagWayTwo = YES;
NSLog(@"The flagWayTwo result is - %@",flagWayTwo ? @"YES":@"NO");
Cách thứ ba là
BOOL flagWayThree = 1;
NSLog(@"The flagWayThree result is - %d",flagWayThree ? 1:0);
Cách thứ tư là
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);
Đây là cách bạn có thể làm điều đó:
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")