Quale formattatore viene utilizzato per i valori booleani?Stringa di formattazione Objective-C per booleano?
EDIT:
Esempio: NSLog(@" ??", BOOL_VAL);
, ciò che è ??
?
Quale formattatore viene utilizzato per i valori booleani?Stringa di formattazione Objective-C per booleano?
EDIT:
Esempio: NSLog(@" ??", BOOL_VAL);
, ciò che è ??
?
Un modo per farlo è quello di convertire in stringhe (dato che ci sono solo due possibilità, non è difficile):
NSLog(@" %s", BOOL_VAL ? "true" : "false");
Io non credo che ci sia un identificatore di formato per i valori booleani.
Le stringhe di uscita non dovrebbero essere: "Sì" e "No": P –
Oppure "Torta" e "Nessuna torta". Qualunque cosa ti si addice. –
Amo la torta e niente torta! Ho intenzione di sostituire tutti i miei x? @ "SÌ": @ "NO" codice con [email protected] "Cake": @ "No Cake" immediatamente: D - beh, almeno per le descrizioni dei miei oggetti comunque;) –
Suggerirei
NSLog(@"%@", boolValue ? @"YES" : @"NO");
perché, ehm, BOOL
s sono chiamati YES
o NO
in Objective-C.
Sembra un ovvio punto di utilità per una macro o una funzione (se non altro per evitare la propagazione di stringhe letterali in tutta l'app). –
-1 per sarcastico "um" – delux247
In Objective-C, il tipo BOOL
è solo un carattere firmato. Da <objc/objc.h>
:
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
modo da poter stampare utilizzando il formattatore %d
Ma questo solo stampare un 1
o un 0
, non YES
o NO
.
Oppure puoi semplicemente usare una stringa, come suggerito in altre risposte.
stringhe di formato per l'utilizzo con NSLog e [NSString stringWithFormat] sono documentate qui:
BOOL/bool/booleana non se ne parla nemmeno ...
Questo è molto ben nascosto nel sito di apple dev. – Echilon
Utilizzare il formattatore intero %d
, che la stampa di 0
o 1
:
NSLog(@"%d", myBool);
xcode si lamenta però. – Fresheyeball
Aggiungi questa funzione inline al file .h
:
static inline NSString* NSStringFromBOOL(BOOL aBool) {
return aBool? @"YES" : @"NO";
}
Ora si è pronti ad andare ...
NSLog(@"%@", NSStringFromBOOL(BOOL_VAL));
Basta aggiungere la funzione qui sotto e passare il valore BOOL
e metodo restituirà indietro il NSString
- (NSString *)boolValueToString:(BOOL)theBool {
if (theBool == 0)
return @"NO"; // can change to No, NOOOOO, etc
else
return @"YES"; // can change to YEAH, Yes, YESSSSS etc
}
ho creato una categoria di NSString con questo
0.123.+ (instancetype)stringWithBool:(BOOL)boolValue {
return boolValue ? @"YES" : @"NO";
}
e usarlo in questo modo:
[NSString stringWithBool:boolValue];
la torta è una bugia! –