gpt4 book ai didi

ios - 在 Swift/Xcode 6 中返回设置包开关的值

转载 作者:搜寻专家 更新时间:2023-11-01 05:46:08 24 4
gpt4 key购买 nike

我很难返回存储的 bool 键的值。

我的 root.plist 看起来像这样:

enter image description here

我在 AppDelegate 中得到了这个:

    let a = NSUserDefaults.standardUserDefaults().boolForKey("sound")

if a { // This is where it breaks
println("sound is on")
}

知道我做错了什么吗?

最佳答案

首先,您应该注册您的默认设置,以便同步所有内容并分配默认设置。然后你就会知道一个值存在。这些值不会在启动时自动同步。

var appDefaults = Dictionary<String, AnyObject>()
appDefaults["sound"] = false
NSUserDefaults.standardUserDefaults().registerDefaults(appDefaults)
NSUserDefaults.standardUserDefaults().synchronize()

let a = NSUserDefaults.standardUserDefaults().boolForKey("sound")

if a { // This is where it breaks
println("sound is on")
}

以下是相关文章的节选。

When Your App Uses a Settings Bundle

请记住,当您的应用程序使用设置包时,您还应该使用 registerDefaults:。由于您已经在设置包的 plist 中指定了默认值,您可能希望您的应用程序自动选择这些值。然而,事实并非如此。设置包中包含的信息只能由 iOS Settings.app 读取,而不会被您的应用程序读取。为了让您的应用使用与 Settings.app 中显示的相同默认值,您必须手动将用户默认键及其默认值复制到单独的 plist 文件中,并将其注册到默认数据库,如上所示。

HERE是直接来自Apple的相关讨论。

注册默认值

讨论

如果没有注册域,则使用指定的字典创建一个,并将 NSRegistrationDomain 添加到搜索列表的末尾。注册域的内容不写入磁盘;您需要在每次应用程序启动时调用此方法。您可以将一个 plist 文件放在应用程序的 Resources 目录中,并调用 registerDefaults: 使用您从该文件中读取的内容。

关于ios - 在 Swift/Xcode 6 中返回设置包开关的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30217540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com