我很难返回存储的布尔键的值.
我的root.plist看起来像这样:

我在AppDelegate中得到了这个:
let a = NSUserDefaults.standardUserDefaults().boolForKey("sound")
if a { // This is where it breaks
println("sound is on")
}
Run Code Online (Sandbox Code Playgroud)
我有什么想法我做错了吗?
Mar*_*kle 12
首先,您应该注册默认值,以便一切都已同步并分配默认值.然后你就会知道存在一个值.这些值在启动时不会自动同步.
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")
}
Run Code Online (Sandbox Code Playgroud)
以下是相关文章的摘录.
请记住,您还应该使用registerDefaults:当您的应用使用设置包时.由于您已在设置包的plist中指定了默认值,因此您可能希望应用自动选择这些值.但事实并非如此.设置包中包含的信息仅由iOS Settings.app读取,绝不会被您的应用读取.为了让您的应用程序使用与Settings.app中显示的相同的默认值,您必须手动将用户默认值及其默认值复制到单独的plist文件中,并将其注册到默认数据库,如上所示.
而HERE是直接来自Apple的相关讨论.
注册默认值
讨论
如果没有注册域,则使用指定的字典创建一个注册域,并将NSRegistrationDomain添加到搜索列表的末尾.注册域的内容不会写入磁盘; 每次应用程序启动时都需要调用此方法.您可以将plist文件放在应用程序的Resources目录中,并使用从该文件读入的内容调用registerDefaults:.
| 归档时间: |
|
| 查看次数: |
8779 次 |
| 最近记录: |