使用具有核心日期的导航控制器模板的基本应用布局:
委托:persistenceCoordinator,managedObjectModel,managedObjectContext
- RootView:managedObjectContext(来自委托),addManagedObjectContext(使用模板中的模式),fetchResultsController
我有两个对象,A和B共享一对一的关系/反向关系
使用模板中的模式app:
- 创建addManagedObjectContext
- 插入A实体
- 按下添加/编辑视图(已将插入的实体传递给它)
例外步骤1:
如果我只是填写A属性并保存一切正常.
- 该对象被插入到数据库中(在命令行上使用sqlite3进行验证)
- fetchResultsController更新列表视图
- 我可以关闭并打开应用程序(完全关闭/打开而不仅仅是应用程序切换),列表视图将正确获取
如果我然后编辑A,我可以选择添加B并按下添加B视图(并传递A实体)
- 填写B详细信息并保存
- 将B插入到A的managedObjectContext中,设置关系,并保存上下文
- 视图弹出,一切都很好
- 对象都在数据库中具有正确的关系
- 我可以重新加载记录并查看关系,进行编辑等
- 例外:如果我关闭/重新打开应用程序,以便触发提取,则会出现标题中提到的错误.
例外步骤2:
如果我在初始"添加"中填写A属性和B属性
- 保存B会触发A的上下文的完整保存(如上所述)
- 通过模板设置的委托关系保存A保存(并将结果合并到主要的managedObjectContext等)
- 对象正确插入数据库
- 但是fetchResultsController不会更新以显示新记录
- 例外:如果我关闭/重新打开应用程序,以便触发提取,则会出现标题中提到的错误.
我已经尝试先保存A,为B等添加单独的上下文.我很难说至少.任何帮助将不胜感激.
干杯,瑞恩