我有三种类型的图像 - 常规,喜爱和删除。所以我在CoreData模型设计器中创建了三个实体。我可以创建继承,但是常规图像会一直被清除,如果其他两种类型继承它们,它们也会被清除,这对我来说是无效的行为(显然)。同时这些模型非常相似。我想要的是他们有共同的父母,其中包含下载和保存在缓存中的方法。我怎样才能在CoreData中实现这个目标?
答案 0 :(得分:-1)
我已经弄清楚了。您可以使用类创建任何继承层次结构(根对象必须继承NSManagedObject)。实体的继承是这里的另一个主题。只需将实体名称设置为所需的类名,该实体将存储该类的数据。简单而聪明的行为! F.E.您的课程A
包含属性a1
和a2
以及方法foo
。以及B
和b1
的课程b2
。您希望将它们存储在不同的表中,但希望B
继承A
以a1
和a2
并且能够调用foo
。您可以使用提到的属性和方法创建类A : NSManagedObject
,然后使用动态属性B : A
和b1
创建b2
。这就是你的所有代码。现在创建两个模型:A
包含a1
和a2
属性,B
包含a1
,a2
,b1
和{{ 1}}属性。此处不需要来自b2
的实体继承B
。如果您不将A
和a1
属性添加到a2
实体,则这些属性将在您的代码中可见,但会引发运行时“无法识别的选择器”异常。希望这能帮助CoreData中的一些新手。