设置包中的ToggleSwitch无法在iPhone中运行?

时间:2011-05-23 06:43:58

标签: iphone settings.bundle

我的设置包中有一个切换开关,但它第一次无效。当我在设置中再次更改值时,它正在正常工作。

即使我在使用值之前同步:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

[userDefaults synchronize];

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

    //Do Some Work
}

我现在要做什么?

2 个答案:

答案 0 :(得分:5)

我假设您遇到此问题,因为您尚未注册默认值。

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

在正常情况下,我们将为此目的创建一个plist文件,其中包含设置包中所有键的默认值,并将其注册为

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

答案 1 :(得分:4)

我认为您在这里遇到的是一个相当奇怪的问题,即在用户第一次运行设置应用程序之前,设置包中的设置不会加载。

直接来自Apple:

  

对于新安装的应用程序,   来自的默认首选项值   应用程序的设置包不是   设置直到设置应用程序   运行。这意味着如果用户运行   运行之前的应用程序   设置,指定的默认值   在您的设置包中   不可用。

有关详细信息,请参阅:Apple's Documentation