CoreData以及与实现协议的类的关系

时间:2016-08-19 07:39:58

标签: ios core-data

我正在构建一个ios应用程序,我遇到以下问题:

我说的是一个包含类AnimalCats的课程Dogs。这些类又有子类DomesticCatsWildCats(resp。DomesticDogsWildDogs),其中包含猫和狗的种类,其中一些是家畜,另一些是不

我有另一个班级PetOwner,其中包含与petsSetDomesticCats的实例的多对多关系DomesticDogs,反向关系为owner

有没有办法在我的应用的CoreDate模型中建模这种关系? 它不适用于CoreData我会定义一个<DomesticAnimal>DomesticCats将实现的协议DomesticDogs,包含(以及其他)属性owner,但我不我想我可以将它与CoreData模型混合使用吗?

或者我是否需要在我的CoreData模型中创建PetOwnerAnimal的多对多关系,但是我可以强制执行只会添加实现<DomesticAnimal>的类petsSet的{​​{1}}?

1 个答案:

答案 0 :(得分:0)

我建议一种可以更轻松地管理数据的替代方案。

添加一个新实体并将其命名为AnimalType,其中包含一个字符串属性,您可以添加类型&#34;国内&#34;和#34;野生&#34;和实体Animal之间的一个关系,可能名为typeAnimal,其反转将作为实体Animal中的关系存在,可能名为animalType

这样每个实体Animal都可以有一个类型&#34;国内&#34;或者&#34;狂野&#34;。

然后当你需要的数据集只有&#34;国内&#34;例如,您可以在谓词设置为Animal的实体animalType = "domestic"上运行抓取。