覆盖insertInManagedObjectContext:对mogenerator中的子实体没有影响:为什么以及如何做?

时间:2013-05-07 23:04:36

标签: cocoa core-data inheritance mogenerator

insertInManagedObjectContext:提供的方法mogenerator中,没有任何超级方法的调用。

我想知道为什么。

确实,

  • 想象一下,我有两个实体:ParentEntityChildEntity;当然,ParentEntityChildEntity的父实体。
  • 然后,我覆盖insertInManagedObjectContext:的{​​{1}}。
  • 但是,当我创建ParentEntity时,我的所有更改都不会被考虑在内!

我想知道为什么会有这样的选择,也许还有解决方案。



我需要创建一个带子节点的超级实体,并且这个超级实体有两个插入方法。我希望这两个插入方法可供孩子们使用。

1 个答案:

答案 0 :(得分:1)

可能他们并没有像你那样想到它。

至于你能做什么,为什么不用你自己的方法代替insertInManagedObjectContext:并让它调用超级实现?生成文件,然后将新方法放在ChildEntity.m中,并让该版本调用super的版本。您不能使用相同的方法名称,因为_ChildEntity.m会有一个不会调用超级版本的方法名称。所以,使用其他一些方法名称。