【问题标题】:ToggleSwitch in Setting bundle not Working in iPhone?设置包中的切换开关在 iPhone 中不起作用?
【发布时间】:2011-05-23 06:43:57
【问题描述】:

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

即使我在使用该值之前也进行了同步:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

[userDefaults synchronize];

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

    //Do Some Work
}

我现在要做什么?

【问题讨论】:

    标签: iphone settings.bundle


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      直接来自苹果:

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

      欲了解更多信息,请参阅:Apple's Documentation

      【讨论】:

      • 那个链接已经死了,谷歌搜索它似乎没有为它带来一个新的 URL :(
      • 嗯!由于不再需要[NSUserDefaults synchronize],我想知道这是否仍然是一个问题。你是怎么遇到这个问题的? (只是不确定我是否应该尝试找到更新的链接!)
      • 联系我在 Apple 认识的人,他们可能会提供帮助。将在接下来的一两天内更新。
      • 我 ping 的 Apple 人员不确定问题是否仍然存在。我找不到笔记,也没有手边的测试用例。看看我是否收到@Shayne 的回复并相应更新。
      • 我已经有一段时间没有想过这个问题了。但是链接仍然死了!
      猜你喜欢
      • 2018-01-13
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      • 1970-01-01
      相关资源
      最近更新 更多