【发布时间】:2010-06-20 04:08:00
【问题描述】:
使用带有核心日期的导航控制器模板的基本应用布局:
委托:persistenceCoordinator、managedObjectModel、managedObjectContext
- RootView:managedObjectContext(来自委托)、addManagedObjectContext(使用模板中的模式)、fetchResultsController
- 添加/编辑视图(用于添加对象 A 及其 B 的层次结构)
我有两个对象 A 和 B,它们共享一对一关系/反向关系
使用应用程序模板中的模式:
- 创建一个 addManagedObjectContext
- 插入一个 A 实体
- 推动添加/编辑 A 视图(已将插入的实体传递给它)
例外步骤 1:
如果我只是填写 A 属性并保存一切正常。
- 对象被插入到 数据库(使用 sqlite3 验证 命令行)
- fetchResultsController 更新 列表视图
- 我可以关闭和打开应用程序(完整 关闭/打开不仅仅是应用程序开关)和 列表视图将正确重新获取
如果我然后编辑 A,我可以选择添加 B 并推送添加 B 视图(并传递 A 实体)
- 填写B详细信息并保存
- B 被插入到 A 中 managedObjectContext, 关系已设置,上下文 已保存
- 视图弹出并全部显示 好
- 对象都在数据库中 正确的关系
- 我可以重新加载记录并查看 关系,进行编辑等
- 例外:如果我关闭/重新打开应用程序, 以便触发提取,然后 标题中提到的错误将 发生。
例外步骤 2:
如果我在初始“添加”中填写A属性和B属性
- 保存 B 会触发 A 的完全保存 上下文(如上)
- 保存 A 通过委托保存 模板建立的关系 (并将结果合并到主 managedObjectContext 等)
- 对象被插入到 数据库正确
- 但是 fetchResultsController 不更新以显示新的 记录
- 例外:如果我关闭/重新打开应用程序, 以便触发提取,然后 标题中提到的错误将 发生。
我尝试先保存 A,然后为 B 等添加单独的上下文。至少可以说我很困惑。任何帮助将不胜感激。
干杯, 瑞恩
【问题讨论】: