2014-02-27 53 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