2012-08-14 38 views
6

He establecido un valor bool para la clave TCshow en mi NSUserDefault, Quiero ejecutar una prueba nslog si la clave está guardada o no, y estoy tratando de imprimir el valor bool. aquí está mi código pero no funciona, ¿alguna sugerencia?cómo imprimir bool en el objetivo c

- (IBAction)acceptAction:(id)sender { 
//key store to nsuserdefault 
self.storedKey = [[NSUserDefaults alloc] init]; 
[self.storedKey setBool:YES forKey:@"TCshow"]; 
//trying to print out yes or not, but not working... 
NSLog(@"%@", [self.storedKey boolForKey:@"TCshow"]); 

} 
+0

por cierto, este método es para algo así como "Término y condición" scollview aunque. lo que quiero es ... si el nuevo usuario usa la aplicación por primera vez, así que promueva T & C para que acepte, si acepta, entonces el valor SÍ se guardará en la tecla nsuserdefault TCshow, la próxima vez que regrese, no más La vista de T & C aparecerá para él, directamente en la vista de inicio de sesión. Si alguien puede ayudarme con esta lógica, seré muy útil ... De nuevo, – seph

+0

, compruebe http://stackoverflow.com/questions/6358349/how-to-print-boolean-flag-in-nslog – WeCan

Respuesta

15

%@ es para los objetos. BOOL no es un objeto. Debe usar %d.

Imprimirá 0 para FALSE/NO y 1 para TRUE/YES.

+1

'% d' funcionará, pero recuerde 'BOOL' es' signed char' not 'int' – Ankur

2
NSLog(@"%d", [self.storedKey boolForKey:@"TCshow"]); 
0
if([self.storedKey boolForKey:@"TCshow"]){ 
NSLog(@"YES"); 
} 
else{ 
NSLog(@"NO"); 

} 

Creo que le será útil.

2
NSLog(@"The value is %s", [self.storedKey boolForKey:@"TCshow"] ? "TRUE" : "FALSE"); 
11

debe usar

NSLog(flag ? @"Yes" : @"No"); 

aquí flag es su BOOL.

0

Sólo por el bien de utilizar la nueva sintaxis siempre se puede caja El bool por lo que es un objeto y se puede imprimir con %@

NSLog(@"%@", @([self.storedKey boolForKey:@"TCshow"]));