我正在使用NSUserDefaults显示我GameScene
上resetViewController
的分数。问题是,如果用户没有得分,它将显示玩家的最后得分。
在GameScene中
var score: Int = 0
var scoreLabel = SKLabelNode()
let defaults = NSUserDefaults.standardUserDefaults()
score++
scoreLabel.text = "\(score)"
defaults.setObject(scoreLabel.text, forKey: "scoring")
在resetViewController中
var score = defaults().stringForKey("scoring")
YourScore.text = score
我确定它很简单,但我似乎无法弄清楚
答案 0 :(得分:1)
当你需要得分重置时,只需致电
NSUserDefaults.standardUserDefaults().setObject(nil, forKey: "scoring")
答案 1 :(得分:0)
>>> d = range(10)
>>> sys.getsizeof(d)
152
>>> d[0] = 'text'
>>> sys.getsizeof(d)
152
>>> d
['text', 1, 2, 3, 4, 5, 6, 7, 8, 9]
从NSUserDefaults中删除值。您也可以将其设置为零。或者只是不使用NSUserDefaults - 使用它没有多大意义,除非您需要在重新启动应用程序之间保持值。
答案 2 :(得分:0)
我建议保存整数,而不是字符串。这样,默认值为零,您可以通过将键设置为零来轻松重置分数。
NSUserdefaults.standardUserDefaults().IntegerForKey("score")
NSUserdefaults.standardUserDefaults().setInteger(0, forKey: "score")