Core data 核心数据一对多记录插入错误

Core data 核心数据一对多记录插入错误,core-data,Core Data,我有三个实体 Forms{ name:string jobs<-->>JSAjobs.form } JSAjobs{ name:string form<<-->Forms.jobs } Jobs{ step:string jobs<<-->Forms.jobs } 您的实体非常混乱,因为您没有选择可用的实体名称。你太糊涂了,自己都没法解释这些简单的关系。这会导致代码混乱,不允许您以结构化的

我有三个实体

Forms{
    name:string
    jobs<-->>JSAjobs.form
}

JSAjobs{
    name:string
    form<<-->Forms.jobs
}

Jobs{
    step:string
    jobs<<-->Forms.jobs
}

您的实体非常混乱,因为您没有选择可用的实体名称。你太糊涂了,自己都没法解释这些简单的关系。这会导致代码混乱,不允许您以结构化的方式进行思考

你的代码完全不可理解。您有一个数据数组,尽管有一个获取的结果控制器(大概是这样)。代码的第二部分显示了一个神秘而神秘的新实体
jobsab
。你不可能问这样有意义的问题,更不用说得到答案了

您有嵌套数组,但没有任何类型检查,这必然会中断,并且以任何方式完全无法调试。把这些都扔掉

尽管如此,让我们试着让您开始:

首先,实体名称使用复数是没有意义的。如果实体表示一个“表单”,那么它应该是
form
而不是
Forms

可能您需要以下设置:

Form <<----> Job <----->> JobDetail
这是一种更安全的分配关系的方法。当然,您已经为此目的为这些实体创建了NSManagedObject子类

然而,如果工作和形式之间的关系是一对多的,那么你的计划就是这样的

Form <---->> Job <------>> JobDetail
现在,您可以将新作业分配给项目并链接其他关系,如下所示:

newJob.project = existingProject; 
newJobDetail.job = newJob; 

抱歉,我在关系中出错了伪代码抱歉,我在关系中出错了伪代码是这样的表单{name:string jobs>JSAjobs.form}JSAjobs{name:string steps>jobsDetail.jobs}谢谢,非常感谢你的解释,我按照你的建议重新组织了结构,一切都很完美。
Form <---->> Job <------>> JobDetail
Project <---->> Job <------>> JobDetail
newJob.project = existingProject; 
newJobDetail.job = newJob;