NSUserDefaults valueForKey错误

时间:2016-06-14 06:03:53

标签: swift swift2 nsuserdefaults

我想在简单的游戏中保存高分。我是swift 2的新手,不知道我做错了什么。我收到的错误是“类型'int'的值没有'valueForKey'的成员。这是我上一次不成功尝试的代码。

var highScoreDefault = NSUserDefaults.standardUserDefaults()

    if(highScoreDefault.valueForKey("highScore") != nil){
        highScore = highScore.valueForKey("highScore") as NSInteger! //error here
    }


  newFunc
        score += 1
        if (score > highScore){
            highScore = score
            var highScoreDefault = NSUserDefaults.standardUserDefaults()
            highScoreDefault.setValue(highScore, forKey: "highScore")
            highScoreDefault.synchronize()
        }
        highscoreLbl.text = "\(highScore)"

4 个答案:

答案 0 :(得分:1)

您必须将其保存为:/siteName/app/design/frontend/[theme folder]/[theme child folder]/template/catalog/product/view.phtml

并检索它:NSUserDefaults.standardUserDefaults().setInteger(highScore, forKey: "highScore")

答案 1 :(得分:1)

let defaults = NSUserDefaults.standardUserDefaults()
defaults.setValue(value, forKey: "highScore")

Apple建议仅​​在特殊情况下调用synchronize(),例如应用程序即将退出时。

  

synchronize()方法,它会定期自动调用   间隔,使内存缓存与用户的默认值保持同步   数据库中。

答案 2 :(得分:0)

在NSUserDefault中设置值非常简单

NSUserDefaults.standardUserDefaults().setInteger(yourScore, forKey: "highScore")
NSUserDefaults.standardUserDefaults().synchronize()

答案 3 :(得分:-1)

试试这个:

let highScoreDefault = NSUserDefaults.standardUserDefaults()

//Set
highScoreDefault.setInteger(yourInt, forKey: "intKey")
highScoreDefault. synchronize()

//Get
highScoreDefault.integerForKey("intKey")