【问题标题】:Changes to Application Preferences not Saving or Not Immediately Available?对应用程序首选项的更改未保存或未立即可用?
【发布时间】:2010-06-25 06:55:49
【问题描述】:

我已经成功地创建了我的应用程序的 Settings.bundle 以及其中我需要的项目。我可以在“设置”应用程序中打开面板,更改值,退出“设置”应用程序返回并确认它们与我离开时一样。

我启动我的应用程序并阅读了这些偏好设置,但我没有看到更改 - 不是在第一次启动之后。

但是,如果我退出我的应用并再次启动它,我会看到更改!

我的 plist 是这样设置的......

类型:PSToggleSwitchSpecifier(字符串) 键:EmailOnMessage(字符串) 标题:EmailOnMessageTitle(字符串) 默认值:YES(布尔值) 真值:1(数字) FalseValue:0(数字)

我正在阅读 Apple 文档的首选项...

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

[defaults integerForKey:@"EmailOnMessage"];

我正在 AppDelegate 的 applicationDidBecomeActive 方法中执行此操作。

为什么我的应用不会在此处看到更新?这些设置是否在应用程序生命周期的进一步下降之前不同步?如果有,在哪里?

【问题讨论】:

  • 在读取值之前您是否致电[defaults synchronize]
  • 不,我不是。没想到我需要。哇。非常感谢。

标签: iphone objective-c cocoa-touch


【解决方案1】:

NSUserDefaults 在每次更改后不会同步。系统可能会定期对其进行同步,但如果您想立即使用新值,则必须显式调用synchronize 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-28
    • 2021-09-02
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多