【发布时间】:2015-05-07 17:43:37
【问题描述】:
我正在尝试从文本字段中保存输入的字符串并使用 NSUserDefaults 加载保存的值。当我运行我的代码时,当我点击“saveScore”按钮时应用程序崩溃了。我的错误消息是“以未捕获的异常终止”,但我找不到真正的错误。
class ScoreViewController: UIViewController {
@IBOutlet weak var loadDataButton: UIButton!
@IBOutlet weak var mathScore: UITextField!
@IBOutlet weak var testMath: UILabel!
@IBOutlet weak var saveScore: UIButton!
@IBOutlet weak var displayDataLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func saveDataClicked(sender: AnyObject) {
saveData()
}
func saveData() {
let defaults = NSUserDefaults.standardUserDefaults()
let latestScore = mathScore.text
defaults.setObject(latestScore, forKey: "12/1")
defaults.synchronize()
}
@IBAction func loadDataClicked(sender: AnyObject) {
var defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
if let firstNameIsNotNill = defaults.objectForKey("12/1") as? String {
self.displayDataLabel.text = defaults.objectForKey("12/1") as String
}
}
【问题讨论】:
-
看来问题不在于 NSUserDefault,我运行你的代码。
-
我应该如何解决我的问题?
-
你为什么拿走所有弱的IBOutlets?让他们变得坚强并尝试。
-
我检查了我的连接,结果发现我的 saveScore 和 loadDataButton 连接不好。我删除并重新创建了连接,但连接仍然很糟糕。有什么想法吗?
-
我通过重新启动 xCode 解决了我的问题 - 连接不会保存,直到我重新启动程序。谢谢!
标签: ios xcode swift nsuserdefaults uncaught-exception