昨天相同的代码工作正常,不知道为什么今天不工作。我正在尝试保存用户完成的级别数,然后解锁。继承我的代码
var defaults = NSUserDefaults()
var levelsCompleted = defaults.intergerForKey("levelsCompleted")
保存用户完成级别
if levelfinished() {
defaults.setInteger(nextlevel, forKey: "levelsCompleted")
defaults.synchronize()
println("level \(levelsCompleted) unlocked)
}
无论我完成什么级别,它总是打印用户上次会话保存的级别 因此,如果我第一次运行,即使水平 10th 完成,但当我关闭应用程序并重新运行时,该值始终返回1,则解锁11个级别并返回 11 即使我完成了第20级。所以我不确定为什么它没有妥善保存。它昨天工作正常,只要我完成了用于打印正确的下一级值的任何级别。 继续截屏http://i.imgur.com/It8LOpX.png它总是说解锁6
答案 0 :(得分:1)
很难将代码发布为评论,所以让我们尝试在这里工作。
尝试将if语句更改为:
if levelfinished() {
defaults.setInteger(nextlevel, forKey: "levelsCompleted")
defaults.synchronize()
levelsCompleted = defaults.intergerForKey("levelsCompleted")
println("level \(levelsCompleted) unlocked)
}
答案 1 :(得分:0)
获得完整的关卡:
var levelsCompleted = NSUserDefaults.standardUserDefaults().intergerForKey("levelsCompleted")
保存用户完整级别,如下所示:
if levelfinished()
{
NSUserDefaults.standardUserDefaults().setInteger(nextlevel, forKey: "levelsCompleted")
NSUserDefaults.standardUserDefaults().synchronize()
}
如果您有任何问题,请与我们联系。