我已经使用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()
       }
}

最佳答案

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

关于ios - HighScore重置为0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31989669/

10-10 20:09