有時候我們可能會定義一個 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);