我定义了以下字典:
struct ContentView: View {
@ObservedObject var eatTracker = TimeToEatTrackerViewModel()
var body: some View {
VStack {
Button(action: {
self.eatTracker.mealAndStatus["Breakfast"] = "done"
}){
Text(String(self.eatTracker.mealAndStatus["Breakfast"]!))
}
}
}
}
然后在视图中调用它:
/d
虽然按预期执行,但未存储值。当我关闭应用程序并返回时,新值不在那里,为什么?
谢谢
答案 0 :(得分:1)
更改属性包装器内容值不会触发didSet
,至少目前为止不会触发Xcode 11.4,因此解决方案是
Button(action: {
var tmp = self.eatTracker.mealAndStatus
tmp["Breakfast"] = "done"
self.eatTracker.mealAndStatus = tmp
}){