在我关闭应用程序swift之前,NSuserDefaults不会保存

时间:2014-12-29 13:51:58

标签: ios xcode swing nsuserdefaults

昨天相同的代码工作正常,不知道为什么今天不工作。我正在尝试保存用户完成的级别数,然后解锁。继承我的代码

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

2 个答案:

答案 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()
}

如果您有任何问题,请与我们联系。