核心数据与子类的关系

时间:2013-06-20 21:33:41

标签: ios core-data relationship

我有以下coredata实体:

Event, User, SpecialUserSpecialUserUser的子类,Event.ownerUser之间存在关系

我遇到了我想说的情况

event.owner = specialUser,但这会引发错误

'NSInvalidArgumentException', reason: 'Unacceptable type of value for to-one relationship: property = "owner"; desired type = User; given type = SpecialUser;

我在作业期间也尝试过施法,例如event.owner = (User *) specialUser,但无济于事。

1 个答案:

答案 0 :(得分:3)

看起来您的Event实体类型的owner关系指向User实体类型。如果是这种情况,您只能为该关系分配User

SpecialUser 的子类User 与核心数据无关。它关心的是实体类型。如果没有相应的实体继承,则类继承是没有意义的。基本上,您的类继承和实体继承应匹配。

使SpecialUser实体类型从User实体类型继承,以与类层次结构并行。然后,您可以指定SpecialUser作为所有者,它将对Core Data有效。