Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 错误是“不”;将托管对象从其上下文中删除后对其进行变异;删除CoreData中的子级数据时_Ios_Core Data_Swiftui - Fatal编程技术网

Ios 错误是“不”;将托管对象从其上下文中删除后对其进行变异;删除CoreData中的子级数据时

Ios 错误是“不”;将托管对象从其上下文中删除后对其进行变异;删除CoreData中的子级数据时,ios,core-data,swiftui,Ios,Core Data,Swiftui,有两个实体父对象和子对象,这是一对多关系。单亲和多个孩子 在ChildView中,我将通过self.Child.Parent获取当前Child级别数据的Parent。但是,在以下代码中更新父级时发生错误,并且错误行已指向 import SwiftUI import CoreData struct ChildView: View { var child: Child @ObservedObject private var db = CoreDataDB<Child>

有两个实体<代码>父对象<代码>和<代码>子对象<代码>,这是一对多关系。单亲和多个孩子

ChildView
中,我将通过
self.Child.Parent
获取当前
Child
级别数据的
Parent
。但是,在以下代码中更新父级时发生错误,并且错误行已指向

import SwiftUI
import CoreData

struct ChildView: View {

    var child: Child

    @ObservedObject private var db = CoreDataDB<Child>

    var body: some View {
        VStack {

            Button(action: { 
                CoreData.stack.context.delete(self.child)
                self.update()
            }) {
                Text("delete this child data")
            }
        }

    }

    func update() {

        let predicate: NSPredicate? = NSPredicate(format: "parent = %@", self.child.parent) // predicate by current child's parent 
        let children = self.db.loadDB(predicate: predicate)

        if children.count != 0 {
            children.first!.parent.updateCount(count: children.first!.parent.count) <-- Error occurs in this line when the button tapped every time
        }
    }

}
导入快捷界面
导入CoreData
结构子视图:视图{
变量child:child
@ObservedObject private var db=CoreDataDB
var body:一些观点{
VStack{
按钮(操作:{
CoreData.stack.context.delete(self.child)
self.update()
}) {
文本(“删除此子数据”)
}
}
}
func update(){
let谓词:NSPredicate?=NSPredicate(格式:“parent=%@”,self.child.parent)//由当前子级的父级进行谓词
让children=self.db.loadDB(谓词:谓词)
如果children.count!=0{
children.first!.parent.updateCount(计数:children.first!.parent.count)