Objective-C打印BOOL型变量

来源:互联网 发布:php面向对象编程 pdf 编辑:程序博客网 时间:2024/04/30 12:07

有时候我们可能会定义一个 

BOOL  b;

b=YES;

NSLog(@"BOOL--b-->%@",b);

然后运行程序就会崩溃,这是因为%@打印的是一个对象,BOOL是一个数据类型。

使用%@要求对应的参数必须是一个对象,并且还实现对象的description方法,

这样就可以打印出对象的内容了。 NSLog其实也就是调用该对象的description方法。


怎样打印BOOL型数据呢?


c语言字符串形式输出

1.NSLog(@"BOOL--b-->%s",b?"YES":"NO");  

转换成NSString对象输出

2.NSLog(@"BOOL--b-->%@",b?@"YES":@"NO");

BOOL型YES表示非0条件下,NO表示0,

3.NSLog(@"BOOL--b-->%d",b);  


测试:

[cpp] view plaincopy
  1. BOOL b=YES;  
  2. NSLog(@"BOOL--b-->%s",b?"YES":"NO");  
  3. NSLog(@"BOOL--b-->%@",b?@"YES":@"NO");  
  4. NSLog(@"BOOL--b-->%d",b);  


[cpp] view plaincopy
  1. BOOL b=2;  
  2. NSLog(@"BOOL--b-->%s",b?"YES":"NO");  
  3. NSLog(@"BOOL--b-->%@",b?@"YES":@"NO");  
  4. NSLog(@"BOOL--b-->%d",b);  


[cpp] view plaincopy
  1. BOOL b=NO;  
  2. NSLog(@"BOOL--b-->%s",b?"YES":"NO");  
  3. NSLog(@"BOOL--b-->%@",b?@"YES":@"NO");  
  4. NSLog(@"BOOL--b-->%d",b);  


[cpp] view plaincopy
  1. BOOL b=-1;  
  2. NSLog(@"BOOL--b-->%s",b?"YES":"NO");  
  3. NSLog(@"BOOL--b-->%@",b?@"YES":@"NO");  
  4. NSLog(@"BOOL--b-->%d",b);  


0 0