我正在做一个涉及大量数据的项目,一开始我都是在 plist 中做的,我意识到它已经失控了,我必须学习 Core Data。我仍然不完全确定我是否可以在 Core Data 中做我想做的事情,但我认为它应该会奏效。我已经建立了一个数据模型,但我不确定这是否是正确的方法。如果您认为可以提供帮助,请继续阅读,如果我走在正确的轨道上,请告诉我。请多多包涵,因为我试图尽可能彻底地解释它。
我已经在根级别设置了属性的基本对象;说一个具有姓名,出生日期等属性的人。很简单。您在模型中设置了一个像“Person”这样的实体,您可以在数据中保存任意数量的实体并将它们作为数组检索,对吗?可以根据 Person 中的属性对其进行排序,例如将它们添加到数据库中的日期。
现在我更困惑的是,当我想为每个人存储几个不同的数据集合时。例如课程列表和相关的考试成绩。在一个 plist 中,我将存储一组字典,这些字典按评估日期排序。我在我的数据模型中设置它的方式是我添加了一个名为“Tests”的实体和一个从 Person 到 Tests 的“to-many”关系,然后当我拉取它时,我得到一个可以按时间戳排序的 NSSet再次?有一个更好的方法吗?
类似地,Person 可能有一组数值数据数组(您可以随时间绘制的那种数据,例如,Nike+ 存储您的跑步数据,例如距离与时间的关系,并且一个人可能有多次跑步与他们相关联,因此一组数组,每个都有自己的相关收集日期)。我设置的方式有点不同,“Runs”属性只有一个时间戳属性,它通过一对多关系从 Person 连接,反向“forPerson”。然后,Runs 实体通过一对多关系连接到另一个实体,该关系具有存储数字数据和时间的属性。这将再次使用时间/顺序属性对它们进行排序。
所以我的主要问题是使用时间戳等内部属性对集合进行排序是否是从核心数据加载“数组”的正确方法。与此相比,搜索有关如何在核心数据中存储 NSArrays 的论坛/堆栈溢出似乎过于复杂,让我感觉我误解了一些东西。
谢谢你的帮助。对不起所有的文字,但我是核心数据的新手,我认为在开始编写获取/保存数据的方法之前正确设置数据模型是必不可少的。如有必要,我可以设置一个示例模型来演示这一点并发布它的图片。