UserDefaults不起作用的存储值



它似乎不存储值,即使它已经连接并运行,这是代码:

文件1

struct ContentView: View {
@ObservedObject var eatTracker = TimeToEatTrackerViewModel()
var body: some View {
VStack(spacing: 30) {
Button(action: {
self.eatTracker.currentMeal += 1
print(String(self.eatTracker.currentMeal))
}){
Text("Who's next?")
}
}
}
}

文件2

class TimeToEatTrackerViewModel: ObservableObject {
@Published var currentMeal: Int = UserDefaults.standard.integer(forKey: "CurrentMeal") {
didSet {
UserDefaults.standard.set(self.currentMeal, forKey: "CurrentMeal")
}
}
}

如果我用@State在同一个文件上做这件事,它是有效的,但这对我来说不起作用,为什么?

非常感谢

试试这个:

self.eatTracker.currentMeal = self.eatTracker.currentMeal + 1

而不是:

self.eatTracker.currentMeal += 1

最新更新