我有以下coredata实体:
Event, User, SpecialUser,例如SpecialUserUser的子类,并且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,无济于事。

最佳答案

看起来您的Event实体类型具有指向owner实体类型的User关系。在这种情况下,您只能为该关系分配一个User
SpecialUser 子类是User 的事实与核心数据无关。它关心的是实体类型。如果没有对应的实体继承,则类继承是没有意义的。基本上,您的类继承和实体继承应该匹配。

使SpecialUser实体类型继承自User实体类型,以平行于类层次结构。然后,您可以将SpecialUser分配为所有者,它将对Core Data有效。

关于ios - CoreData与子类的关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17224199/

10-11 08:54