更新变量的 NSUserDefaults
Update NSUserDefaults for a variable
我正在尝试更新一个人在我的游戏中跳跃的总次数,但我遇到了一些问题。以下是那场比赛发生的跳跃次数和加时赛发生的跳跃次数的变量。
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 获取数据时,您实际上从未使用它来增加和重写总数。以不那么相似的方式命名变量将大大有助于解决问题。可能还有其他几个地方需要更改
我正在尝试更新一个人在我的游戏中跳跃的总次数,但我遇到了一些问题。以下是那场比赛发生的跳跃次数和加时赛发生的跳跃次数的变量。
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 获取数据时,您实际上从未使用它来增加和重写总数。以不那么相似的方式命名变量将大大有助于解决问题。可能还有其他几个地方需要更改