swift - 检查 NSUserDefaults 键是否存在

标签 swift nsuserdefaults

在我的应用程序中,我使用以下代码保存 key :

func saveKey(){
        var xmineSpillere = mineSpillere
        var defaults = NSUserDefaults.standardUserDefaults()
        defaults.setObject(xmineSpillere, forKey: "YourKey")
    }

但是我如何检查 key 是否存在呢?我想要这样的代码:

if key("YourKey") exists {
    println("key exists")
}
else {
    println("does not exist")
}

我怎样才能在 Swift 中做这样的事情?

最佳答案

首先,每次将任何内容保存到 NSUserDefaults 时,您都需要调用 synchronize()方法将对持久域的任何修改写入磁盘并将所有未修改的持久域更新为磁盘上的内容。

func saveKey(){
    var xmineSpillere = mineSpillere
    var defaults = NSUserDefaults.standardUserDefaults()
    defaults.setObject(xmineSpillere, forKey: "YourKey")
    defaults.synchronize()
}

The synchronize method is automatically invoked at periodic intervals, use this method only if you cannot wait for the automatic synchronization (for example, if your application is about to exit) or if you want to update the user defaults to what is on disk even though you have not made any changes.

然后可以通过以下方式达到任意值:

if let key = NSUserDefaults.standardUserDefaults().objectForKey("YourKey"){
   // exist
}
else {
   // not exist
}

希望对你有帮助

关于swift - 检查 NSUserDefaults 键是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31598871/

相关文章:

swift - 在 Swift 中实现简单树结构的递归生成器

导航栏后面出现 Swift 黑色背景

ios - 枚举时保存数组

swift - 保存在 userdefaults 中会使应用程序崩溃

ios - 如何避免 bool 标志?

iphone - Float 不可转换为 CGFloat,CGFloat 不可转换为 Float

objective-c - 有人可以解释 NSUserDefaults 中的搜索列表功能吗?

swift - 符合 NSCoding

ios - 使用 NSUserDefaults 从 NSArray 中保存和检索 - Swift

ios - 如何将我的 Audio Session 默认行为设置为快速播放?