2012-02-27 33 views
5

Eventuali duplicati:
Objective c formatting string for boolean?Quale specificatore di formato dovrebbe essere usato per BOOL?

Cosa NSLog% -specifier dovrebbe essere usato per vedere letteralmente YES o NO quando si stampa un BOOL?

+1

possibile duplicato di [Stringa di formattazione dell'obiettivo c per booleano?] (Http://stackoverflow.com/questions/2603802/objective-c-formatting-string-for-boolean) e [BOOL to NSString] (http://stackoverflow.com/questions/738524/bool-to-nsstring) –

+0

nessuno ha provato l'identificatore di formato% hhd per BOOL per il suo funzionamento corretto, stampa 1 per SÌ e 0 per NO – ViruMax

risposta

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

BOOL è semplicemente un alias (typedef) per signed char.

Gli specificatori supportati da NSLog sono documentati here.

+0

Destra. Nessun modo diretto per gestirlo allora? :) – JAM

+0

Questo è il modo giusto per farlo. – sosborn

+1

@JAM: Il 'YES' e' NO' che inserisci nel tuo codice sono solo '#define YES (BOOL) 1' e' #define NO (BOOL) 0' - non c'è altro che 'signed char's to essere gestito non appena il preprocessore è terminato. –

4

I booleani Objective-C (BOOL) sono semplicemente typedef s a signed char. Pertanto, non sono oggetti e non vengono gestiti in modo diverso dagli altri numeri primitivi. Se non ti interessa vedere YES e NO, puoi semplicemente stamparli come faresti con qualsiasi altro numero (con %d, ad esempio). Se si piacerebbe vedere YES e NO, è possibile seguire il suggerimento di Emile.

Problemi correlati