简体   繁体   English

在Xcode Swift上保存和加载整数

[英]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

Save Value 节省价值

NSUserDefaults.standardUserDefaults().setInteger(money, forKey: "MoneyKey");

Retrieve Value 检索价值

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


Remove Value 删除价值

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM