iOS 9 上的捆绑包设置页面未按预期工作

bundle settings page on iOS 9 not working as expected

我是 IOS 的新人。可能我缺少一些概念。我已按照 this tutorial 创建捆绑设置页面。

设置页面已创建,我可以在设置文件中看到我创建的 4 个设置...好的。

我试图在应用程序启动时使用此代码获取此值当应用程序 didfinishlaunchwithoptions:

//Settings:
let standardUserDefaults : NSUserDefaults = NSUserDefaults.standardUserDefaults()
print(standardUserDefaults.boolForKey("Push"))
print(standardUserDefaults.stringForKey("Idioma"))

我没有得到正确的配置值...推送已启用但我总是得到 false,而在 Idioma 中为 nil...

更新: 我遵循 我生成了一个 plist 文件,仅用于存储默认值,并且知道我获得了默认值,但我仍然遗漏了一些概念,因为我想知道是否在我的应用程序之外的设置应用程序中更改了任何默认设置设备的。我已经测试过在设备设置中取消选中推送值,但我的应用程序中仍然获得默认值...我的应用程序如何知道设置中的默认值何时被更改?

var myDict: NSDictionary?
    if let path = NSBundle.mainBundle().pathForResource("SettingsDefaults", ofType: "plist") {
        myDict = NSDictionary(contentsOfFile: path)
    }
    if let dict = myDict {
        print(dict["Push"])
        NSUserDefaults.standardUserDefaults().registerDefaults(dict as! [String : AnyObject])
        NSUserDefaults.standardUserDefaults().synchronize()
    }

它按我预期的方式工作,请确保您在调用之前设置值。

    let standardUserDefaults : NSUserDefaults = NSUserDefaults.standardUserDefaults()

    standardUserDefaults.setBool(true, forKey: "Push")
    standardUserDefaults.setValue("Idioma Value", forKey: "Idioma")

    print(standardUserDefaults.boolForKey("Push"))
    print(standardUserDefaults.stringForKey("Idioma"))

输出

true
Optional("Idioma Value")

即使在第二个 运行 如果我评论值设置它工作正常。

我的更新说明不正确。 RegisterDefaults 和 Synchronize 工作正常我没有正确检查值。我可以在应用程序外检索更改后的值...已解决!