use*_*282 13 xcode nsuserdefaults uiviewcontroller ios swift
我正在使用Swift制作游戏.我想使用NSUserDefaults保存用户的高分.我知道如何在AppDelegate文件中创建一个新的NSUserDefaults变量:
let highscore: NSUserDefaults = NSUserDefaults.standardUserDefaults()
Run Code Online (Sandbox Code Playgroud)
但是如何在我的视图控制器中设置/获取它?
bee*_*eef 36
起初,NSUserDefaults是一本字典(我认为是NSDictionary).每个应用都有自己的用户默认值,因此您无法从任何其他应用访问用户默认值.
如果用户(玩游戏的人)创造了新的高分,那么你必须保存这样的高分:
let highscore = 1000
let userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.setValue(highscore, forKey: "highscore")
userDefaults.synchronize() // don't forget this!!!!
Run Code Online (Sandbox Code Playgroud)
然后,当你想获得用户所做的最好的高分时,你必须从字典中"读取"高分,如下所示:
if let highscore = userDefaults.valueForKey("highscore") {
// do something here when a highscore exists
}
else {
// no highscore exists
}
Run Code Online (Sandbox Code Playgroud)
Ash*_*k R 12
在Swift 3.0中
let highScore = 1000
let userDefults = UserDefaults.standard //returns shared defaults object.
Run Code Online (Sandbox Code Playgroud)
保存:
userDefults.set(highScore, forKey: "highScore") //Sets the value of the specified default key to the specified integer value.
Run Code Online (Sandbox Code Playgroud)
检索:
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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27123 次 |
| 最近记录: |