NSUserDefaults不会永久保存我的高分

时间:2015-04-09 15:21:59

标签: ios swift

我的NSUserDefaults没有正确保存我的游戏高分。当我正在玩(测试)游戏时,它可以正常工作但是当我退出(终止)并重新启动或当我从一个场景转换到另一个场景时,我的高分回到0.任何人都可以帮我解决这个问题吗?提前谢谢。

var score = 6
NSUserDefaults.standardUserDefaults().integerForKey("highscore")
//Check if score is higher than NSUserDefaults stored value and change           NSUserDefaults stored value if it's true

if score > NSUserDefaults.standardUserDefaults().integerForKey("highscore") {
    NSUserDefaults.standardUserDefaults().setInteger(score, forKey: "highscore")
    NSUserDefaults.standardUserDefaults().synchronize()
}

NSUserDefaults.standardUserDefaults().integerForKey("highscore")

1 个答案:

答案 0 :(得分:4)

问题是这个出现两次的陈述什么都没做:

NSUserDefaults.standardUserDefaults().integerForKey("highscore")

它从用户默认值中获取"highscore"键的值,但是立即将其抛出,因为您没有将结果分配给任何内容,例如:

let highscore = NSUserDefaults.standardUserDefaults().integerForKey("highscore")

因此,即使您成功存储用户默认值中的高分,您也永远不会检索 - 所以没有理由认为它不是被保存,因为你已经没有办法知道是否已被保存。