Reputation: 2648
I have set a bool value for key TCshow in my NSUserDefault, I want to run a nslog test whether the key is saved or not, and i m trying to printout the bool value. here is my code but it s not working, any suggestions?
- (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"]);
}
Upvotes: 20
Views: 25152
Reputation: 14328
already answered in another post, copy to here:
BOOL curBool = FALSE;
NSLog(@"curBool=%d", curBool);
-> curBool=0
char* boolToStr(bool curBool){
return curBool ? "True": "False";
}
BOOL curBool = FALSE;
NSLog(@"curBool=%s", boolToStr(curBool));
-> curBool=False
Upvotes: 0
Reputation:
you should use
NSLog(flag ? @"Yes" : @"No");
here flag
is your BOOL
.
Upvotes: 20
Reputation: 47699
NSLog(@"The value is %s", [self.storedKey boolForKey:@"TCshow"] ? "TRUE" : "FALSE");
Upvotes: 4
Reputation: 38728
Just for the sake of using the new syntax you could always box the bool so that is an object and can be printed with %@
NSLog(@"%@", @( [self.storedKey boolForKey:@"TCshow"] ));
Upvotes: 0
Reputation: 6718
if([self.storedKey boolForKey:@"TCshow"]){
NSLog(@"YES");
}
else{
NSLog(@"NO");
}
I think it will be helpful to you.
Upvotes: 0
Reputation: 11700
%@
is for objects. BOOL
is not an object. You should use %d
.
It will print out 0
for FALSE/NO and 1
for TRUE/YES.
Upvotes: 44