我对核心数据有点陌生,目前正在尝试利用父实体。现在,我有这样的模型
实体: ThemePark -> hasAttractions (一对多关系) WaterPark -> hasAttractions (一对多关系) 景点-> inThemePark (hasAttractions的逆关系) 景点-> inWaterPark (hasAttractions的逆关系)
我想要的是一个父实体,比方说GenericPark,它具有属性"hasAttractions",但是我不确定应该如何定义逆关系。
如果我做下面的事情
景点-> inGenericPark ( hasAttractions of HasAttractions in GenericPark)
如何确定GenericPark是waterPark还是ThemePark?
在使用父实体的同时,我应该如何修改这个模型?
提前谢谢!
发布于 2012-08-30 16:33:51
您应该为数据模型检查器中的每个实体分配一个自定义类(它可以具有与实体相同的名称),并为每个实体创建NSManagedObject子类(如果您还没有这样做的话)。
然后ThemePark和WaterPark都是GenericParc的子类,您可以测试GenericParc对象,例如
if ([genericParc isKindOfClass:[ThemeParc class]]) {
// It is a ThemePark:
ThemeParc *themePark = (ThemeParc *)genericPark;
// ...
}发布于 2012-08-30 17:02:42
每个NSManagedObject实例,无论您是否定义了自定义子类,都有一个关联的NSEntityDescription,它将告诉您它是什么样的对象。只需调用有关托管对象的-entity即可。
例如:
if ([@"WaterPark" isEqualToString:[[somePark entity] name]]) {
// do watery things
}https://stackoverflow.com/questions/12201304
复制相似问题