与子类的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实体类型具有指向User实体类型的owner关系。如果是这种情况,则只能为该关系指定一个User

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

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

最新更新