2015-04-24 3 views
3

Я хочу напечатать BOOL (который документированную быть подписан символов) без каких-либо предупреждений компилятора:Как напечатать BOOLS

NSLog(@"Parsing Result = %hhd", parsingResult); 

// inside some iOS program. Xocde 6 

Но я получаю «Формат определяет тип„символ“, но аргумент имеет тип «BOOL» (он же «bool») ».

+1

Попробуйте '% d', это то, что я всегда использую. – matt

+1

Нет, BOOL не подписан символом. Он фактически имеет разные типы на 32 и 64-битных машинах. Я всегда использую% @ и (parsingResult? @ "YES": @ "NO"). – gnasher729

ответ

8
NSLog(parsingResult ? @"YES" : @"NO"); 
+0

Это должно быть больше похоже: 'NSLog (@"% @ ", parsingResult? @" YES ": @" NO ");' – rmaddy

+0

'% @' не нужно, поскольку результат тройного оператора заменяет это условие, но конечно, оба правильны. – Sudeep

+2

Вы пропустили точку. 'NSLog' очень похож на' stringWithFormat: '. Первый аргумент для 'NSLog' должен быть строкой, содержащей некоторую комбинацию спецификаторов текста и формата. Тогда должно быть достаточно аргументов для спецификаторов формата (если они есть). – rmaddy

Смежные вопросы