核心数据中有4个实体。假设实体A,B,C和D.以下是关系:
A< ----->>乙
B<< -----> ç
B<>>> d
问题是: 我的应用程序中有很多屏幕。现在,假设在第一个屏幕中,我对实体A进行了更改,并且当前我没有在托管对象上下文中调用save(我只有一个托管对象上下文)。现在我对实体B进行了更改,现在我想将对实体B所做的更改保存到持久性存储中,但是我不想将我对A所做的更改保存到现在。这是我的应用程序中的一个要求。所以我想稍后保存实体A,或者根本不保存它。
简而言之,问题是,如何将实体单独保存到持久性存储中?我已经考虑了很多,但没有找到办法做到这一点。我尝试使用核心数据提供的NSUndoManager,但它使事情变得非常复杂。
有关如何做的任何想法?
答案 0 :(得分:2)
让每个viewContoller使用它拥有一个单独的本地托管对象上下文。然后相应地设置属性parentContext
(NSManagedObjectContext的属性),或者到主上下文(具有持久存储的那个)或viewController层次结构中的另一个上下文。查看WWDC2011 iOS5核心数据视频,该视频讨论父/子managedObjectContexts。
听起来像是混乱,你可能想要重新设计。