我正在尝试更新一个人在我的游戏中跳跃的总次数,但我遇到了一些问题。以下是那场比赛发生的跳跃次数和加时赛发生的跳跃次数的变量。
var timesJumped: Int = 0
var totalTimesJumped: Int = 0
我有一个用于 NSUserDefaults
的变量,所以即使应用程序关闭或关闭,它也会记住多少次。
var timesJumpedTotal = NSUserDefaults.standardUserDefaults().integerForKey("times jumped")
如果 timesJumpedTotal
应该始终运行并且为真,我有这段代码要运行,所以当我尝试将文本设置为此 timesJumpedTotal
时,我得到一个空白文本域。这是有原因的吗?
if timesJumpedTotal >= 0 {
totalTimesJumped = totalTimesJumped + timesJumped
NSUserDefaults.standardUserDefaults().setInteger(totalTimesJumped, forKey: "times jumped")
}
在我想显示此统计信息的 SKScene 中,我有这段代码,它将节点的文本设置为 totalTimesJumped
的文本:
let timesJumped = NSUserDefaults.standardUserDefaults().integerForKey("times jumped")
totalTimesjumped = childNodeWithName("TotalTimesJumped") as! SKLabelNode
totalTimesjumped.text = "\(totalTimesjumped)"
我不确定为什么会这样,有人知道吗?
我刚才也试过了。
totalTimesJumped = totalTimesJumped + timesJumped
timesJumpedTotal = totalTimesJumped
NSUserDefaults.standardUserDefaults().setInteger(timesJumped, forKey: "high score")
NSUserDefaults.standardUserDefaults().synchronize()
最佳答案
尝试改变
if timesJumpedTotal >= 0 {
totalTimesJumped = totalTimesJumped + timesJumped
NSUserDefaults.standardUserDefaults().setInteger(totalTimesJumped, forKey: "times jumped")
}
收件人:
if timesJumpedTotal >= 0 {
totalTimesJumped = timesJumpedTotal + timesJumped
NSUserDefaults.standardUserDefaults().setInteger(totalTimesJumped, forKey: "times jumped")
}
看来,当您从 NSUserDefaults 获取数据时,您实际上从未使用它来增加和重写总数。不那么相似地命名变量将有助于解决问题。可能还有其他几个地方需要更改
关于ios - 更新变量的 NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37739253/