Есть ли спецификатор формата, который работает с логическими значениями? - PullRequest
16 голосов
/ 19 июля 2011

Я хочу сделать что-то вроде этого:

NSLog(@"You got: %x", booleanValue);

где x - спецификатор. Но я не могу найти один! Я хочу избежать:

if (booleanValue) {
    NSLog(@"You got: YES");
}
else {
    NSLog(@"You got: NO");
}

Есть идеи? В документах не было логического спецификатора. %@ тоже не сработало.

Ответы [ 4 ]

32 голосов
/ 19 июля 2011

Вот две вещи, которые работают:

NSLog(@"You got: %@",booleanValue ? @"YES" : @"NO");

или вы можете разыграть:

NSLog(@"You got: %d", (int)booleanValue);

, которая выдаст 0 или 1

7 голосов
/ 19 июля 2011

Вы можете привести его к int и использовать %d:

NSLog(@"You got: %d", (int)booleanValue);

Или использовать что-то вроде этого:

NSLog(@"You got: %@", booleanValue ? @"YES" : @"NO");
3 голосов
/ 19 июля 2011

Нет спецификатора формата, о котором я знаю.Вы можете сделать это:

NSLog(@"You got: %@", (booleanValue ? @"YES" : @"NO"));

С другой стороны, вы можете написать небольшую функцию или макрос, используя приведенную выше логику, которая принимает BOOL и возвращает соответствующую строку.Затем вы можете использовать эту функцию в своих отчетах журнала.

0 голосов
/ 31 января 2014

Да

Вот код:

NSLog(@"%hhd",BOOLvariable);

Печать 1 для Да и 0 для Нет. Работали для меня.

...