检查NSUserDefaults密钥是否存在

Eri*_*lii 7 nsuserdefaults swift

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

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

但是如何检查密钥是否存在?我希望代码是这样的:

if key("YourKey") exists {
    println("key exists")
}
else {
    println("does not exist")
}
Run Code Online (Sandbox Code Playgroud)

我如何在Swift中做这样的事情?

Vic*_*ler 20

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

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

synchronize方法会定期自动调用,只有在您无法等待自动同步时才会使用此方法(例如,如果您的应用程序即将退出),或者您希望将用户默认值更新为磁盘上的内容,即使您没有做任何改变.

然后,您可以通过以下方式获得任何值:

if let key = NSUserDefaults.standardUserDefaults().objectForKey("YourKey"){
   // exist
}
else {
   // not exist
}
Run Code Online (Sandbox Code Playgroud)

我希望这对你有帮助.


Eri*_*lii 7

找到我自己,代码:

if (NSUserDefaults.standardUserDefaults().objectForKey("YourKey") != nil) {
            println("key exist")
        }
Run Code Online (Sandbox Code Playgroud)