¿Qué formateador se usa para valores booleanos?Cadena de formato Objective-C para booleano?
EDIT:
Ejemplo: NSLog(@" ??", BOOL_VAL);
, lo que es ??
?
¿Qué formateador se usa para valores booleanos?Cadena de formato Objective-C para booleano?
EDIT:
Ejemplo: NSLog(@" ??", BOOL_VAL);
, lo que es ??
?
Una forma de hacerlo es convertir a cadenas (ya que sólo hay dos posibilidades, no es difícil):
NSLog(@" %s", BOOL_VAL ? "true" : "false");
No creo que hay un especificador de formato para los valores booleanos.
Las cadenas de salida no deberían ser: "Sí" y "No": P –
o "Pastel" y "Sin torta". Lo que te venga bien. –
¡Me encanta el pastel y no el pastel! Voy a reemplazar todo mi x? @ "SÍ": @ "NO" código con [email protected] "Pastel": @ "No pastel" inmediatamente: D - bueno, al menos para mis descripciones de objeto de todos modos;) –
recomendaría
NSLog(@"%@", boolValue ? @"YES" : @"NO");
porque, um, BOOL
s se llaman YES
o NO
en Objective-C.
Parece un punto de utilidad obvio para una macro o una función (aunque solo sea para evitar la propagación de literales de cadena en toda la aplicación). –
-1 para "um" sarcástico " – delux247
En Objective-C, el tipo BOOL
es solo un carácter firmado. De <objc/objc.h>
:
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
para que pueda imprimir utilizando el formateador %d
Pero eso sólo se imprimirá una 1
o una 0
, no YES
o NO
.
O puede simplemente usar una cadena, como se sugiere en otras respuestas.
Las cadenas de formato para su uso con NSLog y [NSString stringWithFormat] se documentan aquí:
BOOL/bool/booleano ni siquiera se mencionan ...
Eso está muy bien escondido en el sitio de apple dev. – Echilon
Utilice el formateador número entero %d
, que imprimirá bien 0
o 1
:
NSLog(@"%d", myBool);
xcode se queja. – Fresheyeball
Añadir esta función en línea a su archivo .h
:
static inline NSString* NSStringFromBOOL(BOOL aBool) {
return aBool? @"YES" : @"NO";
}
Ahora ya está listo para ir ...
NSLog(@"%@", NSStringFromBOOL(BOOL_VAL));
Simplemente añadir la función de abajo y pasarle el valor y el método BOOL
regresará el 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
}
he creado una categoría de NSString con este
+ (instancetype)stringWithBool:(BOOL)boolValue {
return boolValue ? @"YES" : @"NO";
}
Y utilizar de esta manera:
[NSString stringWithBool:boolValue];
del pastel es una mentira! –