有办法打印值布尔标志在NSLog?


当前回答

苹果的FixIt提供了%hhd,它正确地给了我BOOL的值。

其他回答

直接将bool值打印为整数

BOOL curBool = FALSE;
NSLog(@"curBool=%d", curBool);

- > curBool = 0

将bool类型转换为字符串

char* boolToStr(bool curBool){
    return curBool ? "True": "False";
}

BOOL curBool = FALSE;
NSLog(@"curBool=%s", boolToStr(curBool));

- > curBool =虚假

//assuming b is BOOL. ternary operator helps us in any language.
NSLog(@"result is :%@",((b==YES)?@"YES":@"NO"));

虽然这不是对Devang的问题的直接回答,但我相信下面的宏对寻找日志bool的人非常有帮助。这将注销bool值,并自动用变量名标记它。

#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

我是这样做的:

BOOL flag = YES;
NSLog(flag ? @"Yes" : @"No");

?:是三元条件运算符,形式为:

condition ? result_if_true : result_if_false

在适当的地方替换实际的日志字符串。

注意,在Swift中,你可以这样做

let testBool: Bool = true
NSLog("testBool = %@", testBool.description)

这将记录testBool = true