Swift2 检索避风港的NSUserDefaults';以前没有使用过(Swift)
我在打开我的应用程序时加载了一些NSUserDefaults值,在第一次成功的会话之后,它工作得很好,但问题是它是第一次在新设备中打开的。它试图找到我以前从未填充或声明过的值。我尝试使用以下if条件修复它,但它仍然不起作用:Swift2 检索避风港的NSUserDefaults';以前没有使用过(Swift),swift2,nsuserdefaults,Swift2,Nsuserdefaults,我在打开我的应用程序时加载了一些NSUserDefaults值,在第一次成功的会话之后,它工作得很好,但问题是它是第一次在新设备中打开的。它试图找到我以前从未填充或声明过的值。我尝试使用以下if条件修复它,但它仍然不起作用: if NSUserDefaults.standardUserDefaults().objectForKey("defaultSessionUserID")! as? String == nil{ 但仍然报告我同样的错误: 致命错误:在展开可选值时意外发现nil 是不是因为
if NSUserDefaults.standardUserDefaults().objectForKey("defaultSessionUserID")! as? String == nil{
但仍然报告我同样的错误:
致命错误:在展开可选值时意外发现nil
是不是因为这一行我只检查对象的键,而不是键?有没有办法检查该值是否在创建之前创建
以下是完整的代码:
if NSUserDefaults.standardUserDefaults().objectForKey("defaultSessionUserID")! as? String == nil{
NSUserDefaults.standardUserDefaults().setObject("", forKey: "defaultSessionUserID")
NSUserDefaults.standardUserDefaults().setObject(false, forKey: "KML")
}
if NSUserDefaults.standardUserDefaults().objectForKey("KML")! as? Bool == false{
//Do something
}
else{
//Do something else
}}
感谢检查键和值类型并使用可选绑定
if let defaultSessionUserID = NSUserDefaults.standardUserDefaults().objectForKey("defaultSessionUserID") as? String {
// key and value exists
}
您可以注册默认值(例如,在ApplicationIDFinishLaunching
中)
那你就可以放心地写了
let defaultSessionUserID = NSUserDefaults.standardUserDefaults().stringForKey("defaultSessionUserID")!
考虑到
NSUserDefaults
有专门的方法stringForKey
和boolForKey哦,是的,我可以使用检查它,如果让…
谢谢!
let defaultSessionUserID = NSUserDefaults.standardUserDefaults().stringForKey("defaultSessionUserID")!