Core data Swift用户界面&x2B;CoreData&x2B;切换

Core data Swift用户界面&x2B;CoreData&x2B;切换,core-data,swiftui,Core Data,Swiftui,我正在使用带有CoreData的SwiftUI。每个单元格都有一个开关,用于更新CoreData isComplete:Bool。如果我的核心数据中有多个项目,那么效果会很好。如果我只有一个项目,我必须在切换消失或视图刷新之前单击切换3次 CategoryCompleteToggle(passedCategory: passedCategory, isOn: $isOn) } // End HStack Text(catName)

我正在使用带有CoreData的SwiftUI。每个单元格都有一个开关,用于更新CoreData isComplete:Bool。如果我的核心数据中有多个项目,那么效果会很好。如果我只有一个项目,我必须在切换消失或视图刷新之前单击切换3次

CategoryCompleteToggle(passedCategory: passedCategory, isOn: $isOn)
            } // End HStack
            Text(catName)
        } // End VStack
            .padding(10)
    }
}

struct CategoryCompleteToggle: View {
    var passedCategory: Category
    @Environment(\.managedObjectContext) var moc
    @ObservedObject var catToggle = CategoryToggle()
    @Binding var isOn: Bool

    var body: some View {
        VStack(alignment: .trailing) {
            Toggle(isOn: $isOn) {
                EmptyView()
            }
            .onAppear {
                self.isOn = self.passedCategory.catCompleted
                print("ONLOAD ISON VALUE: \(self.isOn)")
            }
            .onTapGesture {
                self.catToggle.catToggleOn.toggle()
                self.catToggle.catToggleOn = !self.isOn
                print("IsOn Value: \(self.isOn)")
                print("Passed Category Name: \(self.passedCategory.catName ?? "Unknown")")
                print("Current Completed Value: \(self.passedCategory.catCompleted)")
                self.passedCategory.catCompleted = !self.isOn
                do {
                    try self.moc.save()
                } catch {
                    print(error.localizedDescription)
                }