我正在构建一个ios应用程序,我遇到以下问题:
我说的是一个包含类Animal
和Cats
的课程Dogs
。这些类又有子类DomesticCats
,WildCats
(resp。DomesticDogs
,WildDogs
),其中包含猫和狗的种类,其中一些是家畜,另一些是不
我有另一个班级PetOwner
,其中包含与petsSet
或DomesticCats
的实例的多对多关系DomesticDogs
,反向关系为owner
有没有办法在我的应用的CoreDate模型中建模这种关系?
它不适用于CoreData我会定义一个<DomesticAnimal>
和DomesticCats
将实现的协议DomesticDogs
,包含(以及其他)属性owner
,但我不我想我可以将它与CoreData模型混合使用吗?
或者我是否需要在我的CoreData模型中创建PetOwner
到Animal
的多对多关系,但是我可以强制执行只会添加实现<DomesticAnimal>
的类petsSet
的{{1}}?
答案 0 :(得分:0)
我建议一种可以更轻松地管理数据的替代方案。
添加一个新实体并将其命名为AnimalType
,其中包含一个字符串属性,您可以添加类型&#34;国内&#34;和#34;野生&#34;和实体Animal
之间的一个关系,可能名为typeAnimal
,其反转将作为实体Animal
中的关系存在,可能名为animalType
。
这样每个实体Animal
都可以有一个类型&#34;国内&#34;或者&#34;狂野&#34;。
然后当你需要的数据集只有&#34;国内&#34;例如,您可以在谓词设置为Animal
的实体animalType = "domestic"
上运行抓取。