3

我有以下核心数据实体:

Event, User, SpecialUser,SpecialUser是 的子类,UserEvent.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,无济于事。

4

1 回答 1

3

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

类是SpecialUser 的子类这一事实与 Core Data 无关。它关心的是实体类型。如果没有相应的实体继承,类继承是没有意义的。基本上,您的类继承和实体继承应该匹配。User

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

于 2013-06-20T22:24:48.633 回答