【发布时间】:2020-11-08 11:14:58
【问题描述】:
我创建了一个自定义类(作为 ObservedObject,因为我需要共享这些数据)。 一切正常,但是当我强制关闭应用程序时,数据会重置,我还没有找到任何方法将其保存到 UserDefaults。 (试图正常保存为对象导致应用程序崩溃)。
如何保存这些数据? (在 SettingsView 中按下按钮时)
第一次在这里问。
---主视图---
import SwiftUI
class ProgressData: ObservableObject {
@Published var licenseDate: Date = Date()
@Published var dayProgressValue: Float = 0.00
@Published var nightProgressValue: Float = 0.00
@Published var newDriverProgressValue: Float = 0.00
}
struct MainView: View {
let defualts = UserDefaults.standard
@ObservedObject var data = ProgressData()
var body: some View {
// App Code Here!
}
--- 设置视图 ---
import SwiftUI
struct SettingsView: View {
@ObservedObject var data: ProgressData
var body: some View {
Button(action: {
// What to do in order to save it here?
})
}
谢谢。
【问题讨论】:
-
“我怎么能”的范围很广。这是一项简单的任务,尤其是在 Xcode 12 beta 中,值基本上可以自我保存。你有什么问题?保存到用户默认值已在此处多次解释。你搜索了吗?您可以通过使对象符合 Codable 来保存任意对象的属性;这对您的 ProgressData 来说是微不足道的。例如,请参阅stackoverflow.com/questions/44876420/…。
-
您好,感谢您的回答。目前我不知道保存课程的最佳方法是什么,但我对用户默认设置有一些经验,所以我会尝试你的建议。自己找不到...
标签: ios swift iphone swiftui userdefaults