2011-05-23 16 views
4

我的設置包中有一個切換開關,但它不是第一次工作。當我在設置中再次更改值時,它正在正常工作。設置包中的ToggleSwitch在iPhone中不工作?

即使我使用前值同步:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 

[userDefaults synchronize]; 

if([userDefaults boolForKey:@"KeyName"]) { 

    //Do Some Work 
} 

什麼,我現在要做的?

回答

4

我想這裏遇到的是一個相當奇怪的問題,即設置包中的設置只有在用戶第一次運行設置應用程序時才加載。

直接從蘋果:

對於新安裝的應用程序,從 應用程序的設置捆綁 默認優先值不 集,直到設置應用程序 運行。這意味着如果用戶在運行 設置之前運行 您的應用程序,則您的設置包中指定的 默認值爲 不可用。

欲瞭解更多信息,請參閱:Apple's Documentation

5

我假設你都面臨這個問題,因爲你還沒有註冊的默認值。

[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:@"defaultValueFOrKey", @"Key", nil]]; 

在正常實踐中,我們將創建爲設置的所有鍵的默認值的plist文件捆綁爲此,並將其註冊爲

[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Defaults" ofType:@"plist"]]];