2016-06-14 2 views
1

Я пытаюсь сохранить рекорды в простой игре. Я новичок в быстрой 2 и не уверен, что я делаю неправильно. . Я получаю ошибку, что «Значение типа„ИНТ“не имеет элемент для„valueForKey“Вот мой код, как в моей последней безуспешной попыткиNSUserDefaults valueForKey error

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)" 

ответ

0

его очень простое, чтобы установить значение в NSUserDefault

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

Попробуйте это:.

let highScoreDefault = NSUserDefaults.standardUserDefaults() 

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

//Get 
highScoreDefault.integerForKey("intKey") 
1

Вы должны сохранить его как: NSUserDefaults.standardUserDefaults().setInteger(highScore, forKey: "highScore")

и получить нравится: var highScore: Int = NSUserDefaults.standardUserDefaults().integerForKey("highScore")

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

компании Apple рекомендует вызывать только синхронизация() в особых случаях, например, когда приложение собирается выйти.

Метод синхронизирует(), который автоматически вызывается через периодические интервалы времени , хранит кэш в памяти в синхронизации с по умолчанию пользователя базы данных.

Смежные вопросы