swift userdefaults 设置测试值

swift userdefaults settings testing value

我需要测试应用程序启动时设置页面是否已完成。 我应该测试什么?这是我尝试过的,但在展开时出现错误。 该值是一个字符串。 我尝试使用 ObjectForKey 并测试了 nil 但同样的问题。 我是新手,所以感谢您的帮助。

let settingtest:String = NSUserDefaults.standardUserDefaults().stringForKey("bankid")!
    if (settingtest.isEmpty) {

        performSegueWithIdentifier("getsettings", sender: self)
    }

这适用于 iPad Air,但在 iPad Retina(两个模拟器)上失败

let settingTest = "questar"
NSUserDefaults.standardUserDefaults().setObject(settingTest, forKey: "Myid")

您可以使用 if let 安全地解包您的值:

if let loadedSettingTest = NSUserDefaults.standardUserDefaults().stringForKey("Myid") {
    println(loadedSettingTest)  // "questar"
} else {
   println("empty")
}

或者您可以使用 nil 合并运算符“??”在用户默认值 returns nil:

的情况下 return 一个空字符串
var loadedSettingTest = NSUserDefaults.standardUserDefaults().stringForKey("Myid") ?? ""

if loadedSettingTest.isEmpty {
   println(true)
} else {
    println(false)  // false
}


NSUserDefaults.standardUserDefaults().removeObjectForKey("Myid")

loadedSettingTest = NSUserDefaults.standardUserDefaults().stringForKey("Myid") ?? ""

if loadedSettingTest.isEmpty {
    println(true)    // true
} else {
    println(false)
}