使用带核心日期的导航控制器模板的基本应用布局:
委托:persistenceCoordinator,managedObjectModel,managedObjectContext
我有两个对象,A& B共享一对一的关系/反向关系
使用app模板中的模式:
例外步骤1:
如果我只是填写A属性并保存一切正常。
如果我然后编辑A,我可以选择添加B并按下添加B视图(并传递A实体)
EXCEPTION STEPS 2:
如果我在初始“添加”中填写A属性和B属性
我尝试先保存A,为B等添加单独的上下文。我很难说至少。任何帮助将不胜感激。
干杯, 莱恩
答案 0 :(得分:4)
听起来你只需要一个托管对象上下文。
我不知道为什么你会在RootViewController中有一个名为addManagedObjectContext
的方法或它会做什么。除了最复杂的设计之外,您一次只能有一个上下文,它们不会重叠。 context / s应该由app delegate或专用模型对象持有。每次打开特定视图时,都不会创建新的上下文。
您可以将不同的上下文全部写入同一个持久性存储,因此我认为这就是您在商店中查看数据的原因。但是,如果在一个上下文中将一个对象放在关系中,而在另一个上下文中放置关系的另一侧,则无法跨上下文维护图完整性。我相信这就是产生错误的原因。
答案 1 :(得分:3)
此错误通常与线程有关,可能意味着某些内容仍在另一个线程上进行处理。在我的情况下,我在托管对象的init中做了一些愚蠢的事情(不要覆盖init;))。