2012-08-14 13 views
6

Ho impostato un valore bool per chiave TCshow nel mio NSUserDefault, Voglio eseguire un test nslog se la chiave è salvata o meno, e sto cercando di stampare il valore bool. questo è il mio codice ma non funziona, qualche suggerimento?come stampare bool nell'obiettivo 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

btw, questo metodo è per qualcosa come "Termine & condizione di" scollview tho. quello che voglio è .. se un nuovo utente usa l'app alla prima volta, quindi promuovi T & C affinché accetti, se accetta, il valore YES verrà salvato nella chiave nsuserdefault TCshow, la prossima volta che tornerà, non più La vista T & C apparirà per lui, direttamente verso la vista di login. se qualcuno mi può aiutare con questa logica, sarò davvero appricato ... grazie ancora – seph

+0

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

risposta

15

%@ è per gli oggetti. BOOL non è un oggetto. Dovresti usare %d.

Stampa 0 per FALSE/NO e 1 per VERO/SI.

+1

'% d' funzionerà ma ricorda che 'BOOL' è' signed char' non 'int' – Ankur

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

} 

Penso che sarà utile a voi.

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

si dovrebbe usare

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

qui flag è il vostro BOOL.

0

Solo per il gusto di usare la nuova sintassi si può sempre Box bool in modo che sia un oggetto e può essere stampato con %@

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