swift - 在 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"))
}
解决方案
在适当的位置,您应该使用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:)
将返回注释。如果要为键设置初始值,.0
UserDefaults
register(defaults:)
请注意,由于您的值应该是一个整数,因此您最好使用integer(forKey:)
而不是,object(forKey:)
这样您就不必处理可选的 / Any
。
推荐阅读
- javascript - 通过jquery单击btnfile时如何获取表jquery中的数据属性
- python - Plotly:如何在绘图线图中的特定点添加标记(python / pandas)
- python-3.x - Python中有没有办法删除目录但保留文件?
- r - R 相当于 Excel VLOOKUP
- wordpress - 在外部 APP 上触发 Elementor Popup(登录弹出窗口)
- python-3.x - 乘法返回错误(TypeError: 'int' object is not subscriptable)
- linux - 无法获取当前进程的 UID 的密码数据库信息:用户“???” 未知或没有内存来分配密码条目
- python - 在 Python Pandas 中聚合数据
- linux - Linux - 在脚本外壳中传递密码
- c# - 在 ASP.NET Core Blazor 中使用 MongoDB 作为服务