2012-02-27 20 views
5

Duplicar posibles:
Objective c formatting string for boolean?¿Qué especificador de formato se debe usar para BOOL?

Lo NSLog% -specifier se debe utilizar para ver, literalmente, YES o NO al imprimir un BOOL?

+1

posible duplicado de [Cadena de formato Objective c para booleano?] (Http://stackoverflow.com/questions/2603802/objective-c-formatting-string-for-boolean) y [BOOL en NSString] (http://stackoverflow.com/questions/738524/bool-to-nsstring) –

+0

alguien ha intentado el especificador de formato% hhd para BOOL funciona bien para mí, imprime 1 para YES y 0 para NO – ViruMax

Respuesta

16
BOOL var = YES; 
NSLog(@"var = %@", (var ? @"YES" : @"NO")); 

BOOL es meramente un alias (typedef) para signed char.

Los especificadores compatibles con NSLog están documentados here.

+0

Derecha. ¿No hay una forma directa de manejarlo? :) – JAM

+0

Esta es la forma correcta de hacerlo. – sosborn

+1

@JAM: Los 'SÍ' y' NO' que pones en tu código son '' definir SI (BOOL) 1' y '#define NO (BOOL) 0' - no hay nada más que' caracteres firmados para ser manejado tan pronto como termine el preprocesador. –

4

Booleanos de Objective-C (BOOL) son simplemente typedef s a signed char. Por lo tanto, no son objetos y no se manejan de forma diferente a otros números primitivos. Si no le importa ver YES y NO, puede simplemente imprimirlos como lo haría con cualquier otro número (con %d, por ejemplo). Si quiere como para ver YES y NO, puede seguir la sugerencia de Emile.

Cuestiones relacionadas