SpriteKit第一次如何显示来自NSUserDefualts的数字

时间:2015-06-21 00:11:21

标签: sprite-kit

因此我尝试使用NSUserDefaults在场景中显示得分,使用以下内容:

var savedScore: Int = NSUserDefaults.standardUserDefaults().objectForKey("HighestScore") as! Int
let score = SKLabelNode()
    score.text = toString(savedScore)
    score.fontName = "Menlo-Regular";
    score.fontColor = UIColor.blackColor();
    score.position = CGPointMake(self.frame.size.width * 0.3, self.frame.size.height / 2)
    self.addChild(score)

但是这是第一次运行,因为在" HighestScore"中没有任何内容。然而,它崩溃了应用程序试图加载零值。如何在第一次运行此场景时让分数标签显示0,然后显示" HighestScore"每隔一段时间。

1 个答案:

答案 0 :(得分:1)

在这种特殊情况下,您应该使用integerForKey:而不是objectForKey:。 变化:

var savedScore: Int = NSUserDefaults.standardUserDefaults().objectForKey("HighestScore") as! Int

到:

var savedScore = NSUserDefaults.standardUserDefaults().integerForKey("HighestScore")

如果用户默认值中不存在,则会将savedScore设置为零。