【发布时间】:2014-05-13 16:07:29
【问题描述】:
与this question类似或可能相关。
假设我有一个对象类“动物园”。它与(抽象)类型“动物”的对象具有一对多的关系。因此,Animal 属于 Zoo 对象,具有“zoo”属性,而 Zoo 对象具有“animals”属性。
但是,我通常对具体的子实体更感兴趣,例如 Giraffe 或 Monkey。
我想要一个名为“giraffes”和“monkeys”的关系属性,还有“animals”属性。我想创建 Giraffe 对象并将它们添加到 Zoo。
这将如何工作?我不能在长颈鹿和猴子的关系中指定它的逆是“动物园”,因为这将是无效的(在核心数据编辑器中)。
我通常使用子类,但我需要始终能够询问它们属于哪个 Zoo,因此需要一个通用接口。
非常感谢您的帮助,如果有什么我可以澄清的,请告诉我。
【问题讨论】:
-
您想对
giraffes/monkeys关系做什么?您认为他们会为您提供便利吗? -
好吧,出于保密原因,我可以告诉你,它们不是长颈鹿或猴子,而是其他东西。尽管它们是“哺乳动物”,但它们基本上完全不同,我很少将它们视为动物,而是将它们视为独特的阶级类型。也应该说我不完全明白你在问我什么。
-
您实际上有多个
Zoo实例吗?如当前所述,您将需要添加许多关系。但是,使用获取请求通常比使用关系更好...... -
所以有一个动物/动物园关系,然后有一个名为
giraffes和monkeys的获取请求,对吗?我将如何在 CoreData 编辑器中编写该获取请求?我不是什么专家,但对于我来说,缓存结果对我来说很重要,因为我调用.giraffes和.monkeys的次数比.animals更频繁@ 987654330@ 怎么样(我使用和爱发电机) -
addGiraffesObject:是一种编辑关系的方法。使用 fetch 请求不会缓存结果,但是您真的需要多久迭代一次giraffes的完整列表而不进行任何过滤/考虑批处理故障?
标签: ios macos inheritance core-data entity-relationship