我正在使用 NSLog 打印一些调试信息。对于 BOOL,我可以使用 %d,但我想知道这是否是标准方式?
问问题
18766 次
6 回答
10
用这个 :
NSLog(@"VALUE IS : %@", (YOUR_CONDITION) ? @"YES" : @"NO");
于 2013-08-08T06:13:50.960 回答
6
%@ 用于对象。BOOL 不是对象。您应该使用 %d。
它将打印出 0 表示 FALSE/NO 和 1 表示 TRUE/YES。
NSlog(@"%d",yourBool)
另一种做法。
NSLog(flag ? @"Yes" : @"No");
斯威夫特,你可以这样做
print("Is check = \(yourBool)")
于 2013-08-08T06:10:36.380 回答
1
尝试这个
BOOL flag = 1; //your bool value
NSLog(@"%@", StringFromBoolean(flag));
这将打印 YES。如果 bool 为 0,则日志将为 NO。将它放在 .pch 文件中,以便您可以在应用程序中的任何地方使用它。
#define StringFromBoolean (return value ? @"YES" : @"NO")
于 2013-08-08T06:24:27.353 回答
1
如果我只想要一个 0/1,我通常使用 %i,或者NSLog(@"%@",(b?@"YES:@"NO"));
如果我希望它打印 YES/NO,我将使用它。
于 2013-08-08T06:12:55.253 回答
0
根据 中的定义objc.h
:
typedef signed char BOOL;
// BOOL is explicitly signed so @encode(BOOL) == "c" rather than "C"
// even if -funsigned-char is used.
#define OBJC_BOOL_DEFINED
#define YES (BOOL)1
#define NO (BOOL)0
签名字符也是如此BOOL
,您可以%d
打印它的值。
如果你想像 true 和 false 一样打印,那么你必须检查BOOL
值。见FaJitendra Deore
的回答
于 2013-08-08T06:15:14.947 回答
-1
@Adam:我找到了一种获取 BOOL 变量输出的方法。因为它需要一位作为输入/输出。您可以使用以下代码。
BOOL flag=TRUE;
NSLog(@" %s", flag ? "true" : "false");
这将返回 true,因为 flag 设置为 true,反之亦然。
你可以在这里得到更简短的解释源
于 2013-08-08T06:20:48.333 回答