2015-06-19 55 views
0

我正在使用NSUserDefaults在我的resetViewController上显示我的GameScene得分。问题是,如果用户没有得分,它会显示球员最后得分。使用NSUserDefaults显示分数

在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

你甚至需要NSUserDefaults。如果你只向用户显示当前数据并重置以前的游戏分数,你可以简单地使用视图控制器中的一些属性或使用一些全局变量来完成。 – Sandeep

回答

1

当你需要得分重置,只需致电

NSUserDefaults.standardUserDefaults().setObject(nil, forKey: "scoring") 
+0

非常感谢这对我所需要的完美工作。 –

0

removeObjectForKey:从NSUserDefaults中删除该值。您也可以将其设置为零。或者只是不使用NSUserDefaults - 除非需要在重新启动应用程序之间保留该值,否则没有多少用处。

0

我建议保存整数,而不是字符串。这种方式默认值为零,您可以通过将该键设置为零来轻松地重置分数。

NSUserdefaults.standardUserDefaults().IntegerForKey("score") 
NSUserdefaults.standardUserDefaults().setInteger(0, forKey: "score")