我想要做這樣的事情:是否有一個格式說明符與布爾值一起使用?
NSLog(@"You got: %x", booleanValue);
其中x是符。但我找不到一個!我想避免:
if (booleanValue) {
NSLog(@"You got: YES");
}
else {
NSLog(@"You got: NO");
}
任何想法?文檔沒有布爾說明符。 %@
也沒有工作。
我想要做這樣的事情:是否有一個格式說明符與布爾值一起使用?
NSLog(@"You got: %x", booleanValue);
其中x是符。但我找不到一個!我想避免:
if (booleanValue) {
NSLog(@"You got: YES");
}
else {
NSLog(@"You got: NO");
}
任何想法?文檔沒有布爾說明符。 %@
也沒有工作。
這裏是工作的兩件事情:
NSLog(@"You got: %@",booleanValue ? @"YES" : @"NO");
,或者你可以投:
NSLog(@"You got: %d", (int)booleanValue);
將輸出0或1
謝謝,我忘了? :開關! –
你不需要演員。 'NSLog()'是可變參數,'signed char'('BOOL')將被隱含地提升爲'int'。 – 2013-04-17 14:54:33
可以將其轉換爲int並使用%d
:
NSLog(@"You got: %d", (int)booleanValue);
還是用這樣的:
NSLog(@"You got: %@", booleanValue ? @"YES" : @"NO");
演員沒有必要,請參閱我對PengOne的回答的評論。 – 2013-04-17 14:54:57
有沒有格式說明,我知道的。你可以這樣做:
NSLog(@"You got: %@", (booleanValue ? @"YES" : @"NO"));
或者,你可以寫使用上述邏輯,需要一個BOOL並返回相應的字符串小功能或宏。然後您可以在日誌語句中使用該功能。
是
下面是代碼:
NSLog(@"%hhd",BOOLvariable);
打印1表示是,0表示打給我。
從iOS10(可能更早)引發'%i'的警告,但是,即使沒有顯式(int)強制轉換,也不會再引發警告。 –
有趣的是%x會起作用。 (小寫十六進制說明符) – Joe
'%@'是Objective-C對象指針的格式說明符。布爾,布爾,布爾等不是對象類型。 – Caleb