主对象收到子对象已更改的通知

问题描述 投票:0回答:1

我有一个对象已加载/保存到文档目录中的文件中。它有一个顶级数组,数组中的每个元素都包含数据。该数组在 SwiftUI 中显示为列表。用户单击列表中的行项目并更改子视图中该 array[x] 对象的数据。如何通知顶级对象它已更改以触发保存?我没有使用 Realms、CoreData 或 SQLite。

我研究了 @State 和 @Binding 对象(这就是我正在使用/传递的对象),但我无法弄清楚这部分。我认为可能存在某种形式的 .onChange 可能会向上传递(到所属视图)子对象已更改,但我还没有找到任何形式。也许(也许?)使用环境对象传递整个顶级数据数组?看起来有点矫枉过正,但这行得通吗?

swiftui subview
1个回答
0
投票

您通常有一个顶级对象将数据加载到结构数组中。将其作为

environmentObject
传递下去,您可以通过绑定编辑数据,然后在对象上调用 save。或者,您可以在
scenePhase
中的更改中调用 App 结构中的保存,但是如果应用程序被终止,则意味着数据丢失。

© www.soinside.com 2019 - 2024. All rights reserved.