2014-02-27 25 views
0

我在NSUserDefaults中保存了两个键的BOOL值,而读取值时结果不符合预期。比较BOOL值Objective_C

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
[userDefaults synchronize]; 

NSLog(@"A_Key:%u B_Key:%u", [userDefaults boolForKey:A_KEY], [userDefaults boolForKey:B_KEY]); 

//日志:A_Key的:1个B_Key:0

if([userDefaults boolForKey:A_KEY]){ 
    _segmentedControl.selectedSegmentIndex=0; 
}else{ 
    if([userDefaults boolForKey:B_KEY]){ 
     _segmentedControl.selectedSegmentIndex=1; 
    }} 

找不到什么我缺少/做错了。谢谢。

+1

当你说结果与预期不符时,你真正期待什么? 我看到输出0和1. – thatzprem

+0

当然,你只需要在用户默认值中存储一个布尔值 - 如果是NO,那么_segmentControl.selectedSegmentIndex = 0,如果是YES,那么_segmentControl.selectedSegmentIndex = 1? – Nick

+0

@thatzprem,我的意思是没有任何if语句正在工作 – Zubair

回答

1

你预计会发生什么?布尔值将是represented as numbers(1 =真,0 =假):

的NSNumber的类被用来表示任何基本的C标量的 类型,包括炭,双,浮动,整型,长,短,并且 每个的无符号变体,以及Objective-C布尔类型, BOOL。

你的if语句应该在任何情况下工作,不是吗?

+0

这两个if语句都不是“工作”:( – Zubair

+0

什么意思是“不工作”? – tilo

+0

不计算真实 – Zubair