gpt4 book ai didi

iphone - 在 Core Data 中复制实体

转载 作者:行者123 更新时间:2023-12-01 18:03:17 25 4
gpt4 key购买 nike

我有几个核心数据实体......学生和考试。

现在,考试最初只是每个考试的一个对象——数学考试 3、英语考试 2 等。

在我的数据模型中,学生和考试之间存在关系(一个学生可以有多个考试)。但最初,考试只是自由 float ,不依附于任何学生。

我如何制作一份考试的副本并将其附在学生身上?

如果我这样做:

[student addExamsObject:examObject];

...然后我认为它只是将原始考试引用给学生,而不是复制。

我需要一份副本,因为考试有一个 bool 值“hasTaken”,当学生参加考试时,这是 YES。但如果我现在设置它,它会让所有参加该考试的学生看起来都参加了它。

澄清:我宁愿不重组我的模型。数据取自几个 xml 文件,学生和考试各一个,这些文件被解析到核心数据存储中。例如,一个 Exam 对象可能如下所示:
name:Maths 5
class-id:12
year-id:4
student-id:0

..有一个学生对象看起来像
name: Dave
class-id:12
year=id:4
student-id:222

各种规则旨在指导哪些考试与哪些学生相关……例如,如果所有考试的 id 均为 0,则所有学生都参加考试。如果 class-id 和 year-id 匹配,并且 student-id 为 0,则考试将添加到具有相同类(class)和年份的学生。如果学生 ID 匹配,则只有该学生参加考试。等等等等
我无法更改从服务器输出 xml 的方式。

另一个问题是考试与问题实体有太多关系......换句话说,考试中的问题。我必须存储每个学生在考试中给出的问题的答案。

编辑:我希望人们会尝试回答我的问题,而不是告诉我重组我的整个程序。数据模型的结构之所以如此是有原因的。

Edit2:也许我会进行重组......

最佳答案

考试不应该有 hasTaken属性(property)。在现实世界中考虑一下。考试不会知道谁参加了考试,因为很多人都可以参加。那么,参加考试的实例应该是您模型中的一流概念。

考虑一下:

Exam has many TakenExams, TakenExams belongs to Student http://yuml.me/6627495d

现在参加考试的概念是一个真实的对象,然后您也可以对关联元数据进行建模,例如 dateTaken , score , 等等。

还请记住,Core Data 也希望您设置所有反向关联。

关于iphone - 在 Core Data 中复制实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4335560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com