首页 > 解决方案 > 在 Swift 中保存一个整数变量

问题描述

我试图在 swift/xcode 中保存一个整数变量,以便当用户打开应用程序时,他们递增的数字保持不变(已保存)。到目前为止,这段代码没有运气。当我重新启动应用程序时,这个数字总是回到零。下面的按钮只是将烟雾变量增加 1,我想保存该数据。

感谢您的时间。

let defaults = UserDefaults.standard
var smoke = 0

@IBAction func incrementSmoke(_ sender: UIButton) {
    smoke+=1

    defaults.set(smoke, forKey: "smoke")

    numDaysLabel.text = String(defaults.integer(forKey: "smoke"))        
}

标签: swiftnsuserdefaults

解决方案


在适当的位置,您应该使用smoke存储在UserDefaults. 例如,您可能希望在 中执行此操作viewDidLoad,或者您可以直接在声明属性的初始化程序中执行此操作。

var smoke = UserDefaults.standard.integer(forKey: "smoke")

@IBAction func incrementSmoke(_ sender: UIButton) {
    smoke += 1    
    UserDefaults.standard.set(smoke, forKey: "smoke")    
    numDaysLabel.text = String(smoke)
}

如果您已经没有为该键存储值,则默认情况下integer(forKey:)将返回注释。如果要为键设置初始值,.0UserDefaultsregister(defaults:)

请注意,由于您的值应该是一个整数,因此您最好使用integer(forKey:)而不是,object(forKey:)这样您就不必处理可选的 / Any


推荐阅读