如何在Core数据中保存单个实体

时间:2012-03-14 12:06:06

标签: iphone ios ios4 core-data entity-relationship

核心数据中有4个实体。假设实体A,B,C和D.以下是关系:

A< ----->>乙

B<< -----> ç

B<>>> d

问题是: 我的应用程序中有很多屏幕。现在,假设在第一个屏幕中,我对实体A进行了更改,并且当前我没有在托管对象上下文中调用save(我只有一个托管对象上下文)。现在我对实体B进行了更改,现在我想将对实体B所做的更改保存到持久性存储中,但是我不想将我对A所做的更改保存到现在。这是我的应用程序中的一个要求。所以我想稍后保存实体A,或者根本不保存它。

简而言之,问题是,如何将实体单独保存到持久性存储中?我已经考虑了很多,但没有找到办法做到这一点。我尝试使用核心数据提供的NSUndoManager,但它使事情变得非常复杂。

有关如何做的任何想法?

1 个答案:

答案 0 :(得分:2)

让每个viewContoller使用它拥有一个单独的本地托管对象上下文。然后相应地设置属性parentContext(NSManagedObjectContext的属性),或者到主上下文(具有持久存储的那个)或viewController层次结构中的另一个上下文。查看WWDC2011 iOS5核心数据视频,该视频讨论父/子managedObjectContexts。

听起来像是混乱,你可能想要重新设计。