NSUserDefaults valueForKey 错误

NSUserDefaults valueForKey error

我想在一个简单的游戏中保存高分。我是 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)"

试试这个:

let highScoreDefault = NSUserDefaults.standardUserDefaults()

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

//Get
highScoreDefault.integerForKey("intKey")

你必须像这样保存它:NSUserDefaults.standardUserDefaults().setInteger(highScore, forKey: "highScore")

并像这样检索它:var highScore: Int = NSUserDefaults.standardUserDefaults().integerForKey("highScore")

在 NSUserDefault 中设置值非常简单

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

Apple 建议仅在应用即将退出等特殊情况下调用 synchronize()。

The synchronize() method, which is automatically invoked at periodic intervals, keeps the in-memory cache in sync with a user’s defaults database.