这是一个更普遍的问题,因为我还没有为我提出的问题编写代码。在开始编写代码之前,我想确保自己走在正确的轨道上并可能获得更好的方法来做我想做的建议。基本上我现在有一个核心数据模型设置,我认为这对我正在尝试做的是正确的,只需要对代码的一个非常具体的部分提供一些指导,但是要确保整体我正确地创建它。 / p>
问题的第一部分更多地阐明了关系如何在核心数据中发挥作用。现在我有5个实体,并确保我对它的工作方式有正确的想法我将使用一些例子来确保我在正确的轨道上。
所以,请保存我有一个叫做名字的实体。在仅包含name属性的Name实体中。接下来,我有一个具有类的实体,每个类都有一个true或false的布尔值来确定它是哪个类。这两个在具有一对一关系的Name实体和具有一对多关系的Classes的反向关系中相关,因为多个名称可以具有多个类但每个名称只能有一个类。如果我对这一点正确,那意味着我完全理解核心数据关系!
现在问题的第二部分与课堂上的布尔人有关。我有一个类实体,就像我说的一个布尔包含一个真假设置默认为false。当用户在呈现弹出窗口之前选择其中一个类按钮时,它们实际上给出了所选类的名称,它将布尔值保存为true,然后将该数据传递给弹出窗口名称视图控制器。我不确定如何做到这一点,因为它不是一个广泛问的问题,也没有通过研究找到任何信息。我是那些需要通过明确的例子实际学习的人之一......任何对此的帮助都将不胜感激!抱歉,我没有任何示例代码。
答案 0 :(得分:0)
第一部分似乎是正确的。类CoreDataObject的ManagedObject应该有一个NSSet属性,它将包含名称(因为Class可以有多个名称)
对于第二部分,Core Data使用对象。当您从Core Data获取数据时,它将是一个(可能是扩展的)NSManagedObject(在我们的例子中命名为Class)。您可以像对待任何其他对象一样将此对象作为参数发送,并像使用任何其他对象一样使用它:-)。例如,在de NSSet Names上循环
func iterateOverNames(someClass: Class) {
for name: Name in someClass.names {
// do stuff
}
}
您可以查看这些链接以获取更多信息: