当我尝试更改视图控制器时,为什么会出现错误

时间:2016-02-24 18:16:34

标签: ios swift

不确定如何关闭此问题,但评论解决了我的问题

当我尝试在我的代码中更改视图控制器时,我收到此错误

@RMaddy不,这不是重复,我的错误是由于默认值,但错误发生在视图控制器的转换中。所以在你急于得出结论之前,请先阅读这个问题。

(进一步澄清)不,我试图从故事板中实例化的类确实有正确的类(id)和正确的标识符,所以这不是问题

2016-02-24 10:04:25.271 Shapes Game[3834:27900] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<Shapes_Game.ScoreViewController 0x7ff263e87150> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key highScore.'
*** First throw call stack:
(

在我将此代码添加到我的代码(所有NSUserDefaults并更新高分)之前,我的代码工作正常

我不确定为什么我的代码会导致错误,但我们将不胜感激。

如果我的代码太难阅读,我会提前道歉。如果您需要澄清我需要帮助的地方,请点击下面的评论。 (我只是想知道我能做些什么来解决这个问题)

func updateHighScore() {
    let score: Int? = NSUserDefaults.standardUserDefaults().valueForKey("highScore") as? Int
    if let highScore = score {
        if highScore < totalScore {
            highScoreLabel.text = String(totalScore)
        }
        else {
            highScoreLabel.text = highScore.formatted()
        }
    }
    else {
        highScoreLabel.text = totalScore.formatted()
    }
}
func gameOver(){
     loadHighScore() 
     if let scoreVC =     storyboard!.instantiateViewControllerWithIdentifier("gameOver") as?    ScoreViewController {
                scoreVC.score = self.totalScore
                presentViewController(scoreVC, animated: true,      completion: nil)

      }
//setting high score
        let score: Int? = NSUserDefaults.standardUserDefaults().valueForKey("highScore") as? Int
        if let highScore = score {
            if highScore < totalScore {
                NSUserDefaults.standardUserDefaults().setObject(totalScore, forKey: "highScore")
            }
            else {
                //nothing
            }
        }
        else {
            NSUserDefaults.standardUserDefaults().setObject(totalScore, forKey: "highScore")
        }
        NSUserDefaults.standardUserDefaults().synchronize()
 }

0 个答案:

没有答案