2012-08-14 78 views
6

我在我的NSUserDefault中设置了关键TCshow的布尔值, 我想运行一个nslog测试,不管关键是否被保存,并且我试图打印出布尔值。 这是我的代码,但它不工作,有什么建议吗?如何在目标c打印出bool 0

- (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打印的缘故,这种方法对于像“期限和条件” scollview寿。我想是..如果新用户使用的第一次应用,因此促进T&C让他接受,如果他接受,则该值是将下一次,当他回来后,没有更多的保存到nsuserdefault关键TCshow, T&C视图会弹出来,直接登陆查看。 THX如果任何人都可以帮我这个逻辑,我会得到真正的appricated ... THX再次 – seph 2012-08-14 12:54:13

+0

检查http://stackoverflow.com/questions/6358349/how-to-print-boolean-flag-in-nslog – WeCan 2014-04-17 06:14:31

回答

15

%@为对象。 BOOL不是一个对象。你应该使用%d

它将打印出0为FALSE/NO和1为TRUE/YES。

+1

'% D'可以工作,但记得'BOOL'是'签署char'不'int' – Ankur 2012-08-14 13:08:40

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

} 

我认为这会对您有所帮助。

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

你应该在这里使用

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

flag是你BOOL

0

只是为了使用新的语法,你总是可以框的布尔所以这是一个对象,可以用%@

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