有時候我們可能會定義一個
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]
BOOL b=YES;
NSLog(@"BOOL--b-->%s",b?"YES":"NO");
NSLog(@"BOOL--b-->%@",b?@"YES":@"NO");
NSLog(@"BOOL--b-->%d",b);
[cpp]
BOOL b=2;
NSLog(@"BOOL--b-->%s",b?"YES":"NO");
NSLog(@"BOOL--b-->%@",b?@"YES":@"NO");
NSLog(@"BOOL--b-->%d",b);
[cpp]
BOOL b=NO;
NSLog(@"BOOL--b-->%s",b?"YES":"NO");
NSLog(@"BOOL--b-->%@",b?@"YES":@"NO");
NSLog(@"BOOL--b-->%d",b);
[cpp]
BOOL b=-1;
NSLog(@"BOOL--b-->%s",b?"YES":"NO");
NSLog(@"BOOL--b-->%@",b?@"YES":@"NO");
NSLog(@"BOOL--b-->%d",b);