不确定如何关闭此问题,但评论解决了我的问题
当我尝试在我的代码中更改视图控制器时,我收到此错误
@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()
}