在Xcode Swift上保存和加载整数

时间:2014-12-24 21:58:16

标签: ios xcode swift persistence nsuserdefaults

我正在尝试保存一个整数,以便在我切换页面或关闭游戏后显示它。我这样做是为了更改数字,但是当我切换页面并在返回该页面时加载它时如何保存该数字。

更改代码:

@IBAction func MoneyPress(sender: AnyObject) {

Money += 1

var MoneyNumberString:String = String(format: "Dollars:%i", Money)
self.DollarsLabel.text = (string: MoneyNumberString)

}

2 个答案:

答案 0 :(得分:4)

如果不是很多数据,我用来保存数据,在页面之间传递,并在应用程序运行之间保留它的策略是将值存储在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.
}

加载值:当您需要获取值时,只需从NSUserDefaults抓取它。

@IBAction func loadButton(sender: UIButton) {
    let defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
    var money = defaults.valueForKey("money") as? String
    dollarLabel.text! = money
}

要删除存储的数据,您只需为之前设置的每个键调用removeObjectForKey函数。

let defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
defaults.removeObjectForKey("money")
defaults.synchronize()

有关NSUserDefaults的有用资料

NSUserDefulats课程参考:链接here

答案 1 :(得分:4)

您可以使用NSUserDefaults

保存值

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

检索值

NSUserDefaults.standardUserDefaults().integerForKey("MoneyKey");

因此可以检索viewDidLoad中的值并加载数据:

override func viewDidLoad()
{
    super.viewDidLoad()
    loadWebView()
    var money = NSUserDefaults.standardUserDefaults().integerForKey("MoneyKey");
}

当您第一次来到视图时,资金的价值将 0


删除值

如果您需要从NSUserdefaults中移除值,可以使用:

NSUserDefaults.standardUserDefaults().removeObjectForKey("MoneyKey")