我有以下coredata实体:Event, User, SpecialUser
,例如SpecialUser
是User
的子类,并且Event.owner
与User
有关系
我遇到一种想说的情况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/