我已经使用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/