wake-up-neo.com

Schnell - Speichern von Highscores mit NSUserDefaults

Ich verwende Swift, um ein Spiel zu erstellen. Ich möchte die hohe Punktzahl der Benutzer mit NSUserDefaults speichern. Ich kann eine neue NSUserDefaults-Variable in meiner AppDelegate-Datei erstellen:

let highscore: NSUserDefaults = NSUserDefaults.standardUserDefaults()

Aber wie kann ich dies in meinen View-Controllern einstellen?

13
user2397282

Zuerst ist NSUserDefaults ein Wörterbuch (NSDictionary, denke ich). Jede App verfügt über eigene Benutzervorgaben, sodass Sie nicht über eine andere App auf die Benutzervorgaben zugreifen können.

Wenn der Benutzer (derjenige, der Ihr Spiel spielt) einen neuen Highscore erzielt, müssen Sie diesen Highscore wie folgt speichern:

let highscore = 1000
let userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.setValue(highscore, forKey: "highscore")
userDefaults.synchronize() // don't forget this!!!!

Wenn Sie dann den besten Highscore des Benutzers erhalten möchten, müssen Sie den Highscore aus dem Wörterbuch folgendermaßen "lesen":

if let highscore = userDefaults.valueForKey("highscore") {
    // do something here when a highscore exists
}
else {
    // no highscore exists
}
34
beeef

In Swift 3.0

let highScore = 1000
let userDefults = UserDefaults.standard //returns shared defaults object.

Speichern:

userDefults.set(highScore, forKey: "highScore") //Sets the value of the specified default key to the specified integer value.

abrufen:

if let highScore = userDefults.value(forKey: "highScore") { //Returns the integer value associated with the specified key.
        //do something here when a highscore exists
    } else {
        //no highscore exists
}
11
Ashok R
var defaults=NSUserDefaults()
var highscore=defaults.integerForKey("highscore")

if(Score>highscore)
{
    defaults.setInteger(Score, forKey: "highscore")
}
var highscoreshow=defaults.integerForKey("highscore")

lblHighScore.text="\(highscoreshow)
println("hhScore reported: \(lblHighScore.text)")
lblPlayScore.text="\(Score)"
println("play reported: \(lblPlayScore.text)")
0
jigar parmar

Swift 4

Set Value

UserDefaults.standard.set("TEST", forKey: "Key") // setString

Abrufen

UserDefaults.standard.string(forKey: "Key") // getString

Entfernen

UserDefaults.standard.removeObject(forKey: "Key")

0
Mithra Singam