我正在使用 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   回答