我一直在玩 SwiftUI,并且一直在编写一个小型膳食计划/待办事项列表样式的应用程序。我能够让 Realm 与 SwiftUI 一起工作,并编写了一个小的包装器对象来获取 Realm 更改通知以更新 UI。这对于添加项目和 UI 得到正确更新非常有用。但是,当使用滑动删除或其他方法删除项目时,我从 Realm 收到索引越界错误。
这是一些代码:
内容视图:
struct ContentView : View {
@EnvironmentObject var userData: MealObject
@State var draftName: String = ""
@State var isEditing: Bool = false
@State var isTyping: Bool = false
var body: some View {
List {
HStack {
TextField($draftName, placeholder: Text("Add meal..."), onEditingChanged: { editing in
self.isTyping = editing
},
onCommit: {
self.createMeal()
})
if isTyping {
Button(action: { self.createMeal() }) {
Text("Add")
}
}
}
ForEach(self.userData.meals) …Run Code Online (Sandbox Code Playgroud)