词典未存储在UserDefaults上

时间:2020-04-26 05:53:12

标签: swift swiftui

我定义了以下字典:

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

虽然按预期执行,但未存储值。当我关闭应用程序并返回时,新值不在那里,为什么?

谢谢

1 个答案:

答案 0 :(得分:1)

更改属性包装器内容值不会触发didSet,至少目前为止不会触发Xcode 11.4,因此解决方案是

Button(action: {
    var tmp = self.eatTracker.mealAndStatus
    tmp["Breakfast"] = "done"
    self.eatTracker.mealAndStatus = tmp
}){