HighScore重置为0

时间:2015-08-13 13:29:15

标签: ios xcode swift

我使用Xcode和swift已经在我的xcode项目上工作了几个星期。今天当我开始运行模拟器时,我的highScore设置为0.这是第一次,它始终保持得分。这与模拟器有什么关系,或者我的代码有问题。如果highScore可以在任何给定时间重置为0,我当然不希望用户使用我的应用程序。

class GameScene: SKScene {

   let labelHighScore = SKLabelNode()
   var highScore = 0

override func didMoveToView(view: SKView) {

   var HighscoreDefault = NSUserDefaults.standardUserDefaults()
      if(HighscoreDefault.valueForKey("Highscore") != nil) {

         highScore = HighscoreDefault.valueForKey("Highscore") as! NSInteger
         labelHighScore.text = NSString(format: "%i", highScore) as String
   }

   labelHighScore.fontSize = 70
   labelHighScore.position = CGPointMake(frame.midX, frame.midY + 305)
   labelHighScore.fontColor = UIColor.blackColor()
   self.addChild(labelHighScore)
}


override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {

   if ball != blackB && ball.texture == blackB.texture {
      score += 1
      labelScore.text = String(score)

         if(score > highScore) {
            highScore = score
            labelHighScore.text = String(highScore)

            var HighscoreDefault = NSUserDefaults.standardUserDefaults()
            HighscoreDefault.setValue(highScore, forKey: "Highscore")
            HighscoreDefault.synchronize()
       }
}

1 个答案:

答案 0 :(得分:1)

除非您使用相同的设备,否则不会保留相同的用户默认值。如果您一直使用模拟器,则会知道它们会不时重置。我的建议是明确设置高分的默认值并运行。注释掉设置默认值并重新运行的代码。它应该保持这个价值。