【问题标题】:CoreData relationship with subclassCoreData 与子类的关系
【发布时间】:2013-06-20 21:33:40
【问题描述】:

我有以下核心数据实体:

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,无济于事。

【问题讨论】:

  • 你是如何设置实体之间的超类子类关系的?你有 User.h/m 和 SpecialUser.h/m 文件吗?

标签: ios core-data relationship


【解决方案1】:

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

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

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

【讨论】:

  • SpecialUser 已经将其父实体设置为User
  • 再次检查,因为您的错误消息表明这不是真的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-24
  • 1970-01-01
相关资源
最近更新 更多