我正在用 Swift 构建一个游戏,将用户的高分存储在 NSUserDefaults 中,但是后来游戏一直崩溃。我将范围缩小到读取 NSUserDefaults 的最高分,因此我制作了一个简单的应用程序来测试使用 NSUserDefaults 保存和读取值。我使用按钮按顺序运行每个功能。这是代码:
@IBOutlet var valueTextfield: UITextField
@IBOutlet var keyTextfield: UITextField
@IBOutlet var valueLabel: UILabel
@IBAction func saveData(sender: UIButton){
NSUserDefaults.standardUserDefaults().setObject(valueTextfield.text, forKey: keyTextfield.text)
}
@IBAction func forceSynchronise(sender: UIButton){
NSUserDefaults.standardUserDefaults().synchronize()
}
@IBAction func refreshLabel(sender: UIButton){
valueLabel.text = NSUserDefaults.standardUserDefaults().objectForKey(keyTextfield.text) as String
}
当最后一个函数运行时,它会抛出异常:“致命错误:无法打开 Optional.None”。我认为由于最后一行肯定会返回一个值,因此不需要选项,但显然我错了。有人可以指出我做错了什么吗?
谢谢您的帮助!