2012-06-02 11 views
0

我的應用程序中有按照standardUserDefaults存儲位置的開關,但是當應用程序第一次啓動時,所有開關都處於OFF位置。我怎樣才能將它們默認設置爲ON?通過使用NSUserDefaults首次啓動應用程序,將開關位置設置爲ON

保存

NSUserDefaults *defs1 = [NSUserDefaults standardUserDefaults]; 
    [defs1 setBool: blackSwitch.on forKey: @"blackKey"]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 

負載

NSUserDefaults *defs1 = [NSUserDefaults standardUserDefaults]; 
    blackSwitch.on = [defs1 boolForKey: @"blackKey"]; 

回答

2

的所有

先做以下

NSUserDefaults *defs1 = [NSUserDefaults standardUserDefaults]; 
BOOL isOn = [defs1 boolForKey: @"blackKey"]; 
if(isOn) NSLog(@"isOn"); 

二ASURE即blackSwitch不是零

if(blackSwitch) NSLog(@"blackSwitch is not nil"); 

如果blackswitch是零,這意味着你仍然在視圖控制器的初始化的早期階段,你應該將設置它到viewDidLoad中或代碼viewWillAppear中

設置缺省值,請使用此代碼

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSNumber *testValue = [NSNumber numberWithBool:YES]; 
NSDictionary *appDefaults = [[NSDictionary alloc] initWithObjectsAndKeys: 
testValue, @"blackKey", nil]; 

[defaults registerDefaults:appDefaults]; 
[appDefaults release]; 
+0

他們的工作。我的意思是第一次加載是當用戶安裝應用程序 –

+0

他們的工作是什麼意思,2 NSLog出現在控制檯中?並請解釋更多關於「第一次加載」的意思 –

+0

如果我刪除了應用程序,然後再次構建它 –

2

使用NSUserDefaults方法registerDefaults與您@「blackKey」鍵一起傳遞「真」的默認值。這將確保@「blackKey」被設置爲ON,直到用戶自己對其進行更改。

相關問題