我对核心数据有点新意,目前我正在尝试使用父实体。 现在,我有这种模式
实体:
ThemePark - > hasAttractions(一对多关系)
WaterPark - > hasAttractions(一对多关系)
景点 - > inThemePark(hasAttractions的反向关系)
景点 - > inWaterPark(hasAttractions的反向关系)
我想要的是一个父实体,比如GenericPark,它具有属性“hasAttractions”,但我不确定应该如何定义反向关系。
如果我执行以下操作
景点 - > inGenericPark(GenericPark中hasAttractions的反转)
如何判断GenericPark是waterPark还是ThemePark?
在使用父实体时,我该如何修改此模型?
提前致谢!!!
答案 0 :(得分:2)
每个NSManagedObject
实例,无论您是否定义了自定义子类,都有一个关联的NSEntityDescription
,它会告诉您它是什么类型的对象。只需在相关托管对象上调用-entity
即可。
例如:
if ([@"WaterPark" isEqualToString:[[somePark entity] name]]) {
// do watery things
}
答案 1 :(得分:1)
您应该为数据模型检查器中的每个实体分配一个自定义类(可以与实体具有相同的名称),并为每个实体创建NSManagedObject子类(如果您还没有这样做)。
然后ThemePark
和WaterPark
都是GenericParc
的子类,您可以测试GenericParc
个对象,例如与
if ([genericParc isKindOfClass:[ThemeParc class]]) {
// It is a ThemePark:
ThemeParc *themePark = (ThemeParc *)genericPark;
// ...
}