[英]Saving And Loading An Integer On Xcode Swift
I am trying to save an integer so it shows up after I switch the page or close the game. 我试图保存一个整数,以便在我切换页面或关闭游戏后显示它。 I made this to change the number but how do I save that number when I switch pages and load it when I go back to that page. 我这样做是为了更改数字,但是当我切换页面并在返回该页面时加载它时如何保存该数字。
Change Code: 变更代码:
@IBAction func MoneyPress(sender: AnyObject) {
Money += 1
var MoneyNumberString:String = String(format: "Dollars:%i", Money)
self.DollarsLabel.text = (string: MoneyNumberString)
}
If it isn't a lot of data, the strategy I use to save data, pass it between pages, and persist it between app runs is to store the value in NSUserDefaults
. 如果它不是很多数据,我用来保存数据的策略,在页面之间传递,并在应用程序运行之间保留它的策略是将值存储在NSUserDefaults
。
Setting A Value : When you first get or when you change the data, store it in NSUserDefaults
. 设置值 :首次获取或更改数据时,将其存储在NSUserDefaults
。
@IBAction func MoneyPress(sender: AnyObject) {
Money += 1
var MoneyNumberString:String = String(format: "Dollars:%i", Money)
self.DollarsLabel.text = (string: MoneyNumberString)
let defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults() //This class variable needs to be defined every class where you set or fetch values from NSUserDefaults
defaults.setObject(MoneyNumberString, forKey: "money")
defaults.synchronize() //Call when you're done editing all defaults for the method.
}
Loading A Value : When you need to get the values, just grab it from NSUserDefaults
. 加载值 :当您需要获取值时,只需从NSUserDefaults
获取它。
@IBAction func loadButton(sender: UIButton) {
let defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
var money = defaults.valueForKey("money") as? String
dollarLabel.text! = money
}
To remove the stored data, all you need to do is call the removeObjectForKey function for each key previously set. 要删除存储的数据,您需要做的就是为先前设置的每个键调用removeObjectForKey函数。
let defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
defaults.removeObjectForKey("money")
defaults.synchronize()
Helpful Source on NSUserDefaults : NSUserDefaults的有用资料来源 :
NSUserDefulats
Class Reference: Link here . NSUserDefulats
类参考:链接在这里 。
You can use NSUserDefaults for this. 您可以使用NSUserDefaults 。
NSUserDefaults.standardUserDefaults().setInteger(money, forKey: "MoneyKey");
NSUserDefaults.standardUserDefaults().integerForKey("MoneyKey");
So can retrieve the value in viewDidLoad
and load the data: 因此可以在viewDidLoad
检索值并加载数据:
override func viewDidLoad()
{
super.viewDidLoad()
loadWebView()
var money = NSUserDefaults.standardUserDefaults().integerForKey("MoneyKey");
}
When you come to the view for the first time the value of money will be 0 . 当你第一次来到视图时,钱的价值将是0 。
If you need to remove a value from NSUserdefaults
, you can use: 如果需要从NSUserdefaults
删除值,可以使用:
NSUserDefaults.standardUserDefaults().removeObjectForKey("MoneyKey")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.