私はSwiftを使用してゲームを作っています。NSUserDefaultsを使用してユーザーのハイスコアを保存したいのです。AppDelegateファイルに新しいNSUserDefaults変数を作成する方法を知っています:
let highscore: NSUserDefaults = NSUserDefaults.standardUserDefaults()
しかし、どのように私はこれを私のビューコントローラで設定/取得しますか?
最初は、NSUserDefaultsは辞書です(NSDictionaryだと思います)。すべてのアプリには独自のユーザーデフォルトがあるため、他のアプリからユーザーデフォルトにアクセスすることはできません。
ユーザー(ゲームをプレイするユーザー)が新しいハイスコアを作成した場合、次のようにそのハイスコアを保存する必要があります。
let highscore = 1000
let userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.setValue(highscore, forKey: "highscore")
userDefaults.synchronize() // don't forget this!!!!
次に、ユーザーが作成した最高のハイスコアを取得するには、次のように辞書からハイスコアを「読み取る」必要があります。
if let highscore = userDefaults.valueForKey("highscore") {
// do something here when a highscore exists
}
else {
// no highscore exists
}
In Swift 3.
let highScore = 1000
let userDefults = UserDefaults.standard //returns shared defaults object.
節約:
userDefults.set(highScore, forKey: "highScore") //Sets the value of the specified default key to the specified integer value.
取得:
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
}
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)")
Swift 4
値の設定
UserDefaults.standard.set("TEST", forKey: "Key")
// setString
取得
UserDefaults.standard.string(forKey: "Key")
// getString
削除
UserDefaults.standard.removeObject(forKey: "Key")