Swift UserDefaults不会在应用程序关闭并重新打开后保存数据

Swift UserDefaults不会在应用程序关闭并重新打开后保存数据,swift,userdefaults,Swift,Userdefaults,我目前遇到的一个问题是,如果我离开应用程序并返回,recordData值不会保持保存状态。如果我在不关闭应用程序的情况下再次玩游戏,它将保持保存状态 如果我关闭并重新打开应用程序,ant new score将替换recordData,从而用新的分数更新highScoreLabel1.text。即使新分数小于先前保存的recordData值,也会发生这种情况。请注意,当应用程序重新打开时,highScoreLabel1.text确实显示了正确的高分。它只是在任何新的得分后都不会保留它。因此,基本上

我目前遇到的一个问题是,如果我离开应用程序并返回,recordData值不会保持保存状态。如果我在不关闭应用程序的情况下再次玩游戏,它将保持保存状态

如果我关闭并重新打开应用程序,ant new score将替换recordData,从而用新的分数更新highScoreLabel1.text。即使新分数小于先前保存的recordData值,也会发生这种情况。请注意,当应用程序重新打开时,highScoreLabel1.text确实显示了正确的高分。它只是在任何新的得分后都不会保留它。因此,基本上,它的UserDefaults似乎只有在应用程序打开时才起作用,并且在应用程序关闭和重新打开后不会持久。我可能需要一些关于AppDelegate的东西。有什么建议吗

以下是我的highScore和UserDefaults代码:

只需在视图中添加一行即可将recordData设置为以前保存的高分

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    // high score code
    highScoreLabel1A.text = String(UserDefaults.standard.integer(forKey: "Record1A"))

    // This code will set recordData to the previously saved High Score value, thus avoiding "0"
    recordData = UserDefaults.standard.integer(forKey: "Record1A")

} 
UserDefaults保留数据,但只设置文本标签,而不设置变量recordData

替换视图将显示为


启动应用程序时,recordData似乎始终为0。因此,任何分数都将更高,并将写入UserDefaults。
override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    // high score code
    highScoreLabel1A.text = String(UserDefaults.standard.integer(forKey: "Record1A"))

    // This code will set recordData to the previously saved High Score value, thus avoiding "0"
    recordData = UserDefaults.standard.integer(forKey: "Record1A")

} 
override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    recordData = UserDefaults.standard.integer(forKey: "Record1A")
    highScoreLabel1A.text = String(recordData)
}