首页 > 解决方案 > 如何使用 NSObjectController 和使用 Cocoa 绑定的托管对象上下文

问题描述

搜索了整个互联网,但找不到我的问题的现代解决方案。我想通过 Cocoa Bindings 将 NSObjectController 与 Core Data 配对使用,并努力正确设置它。值得注意的是,我使用的是最新版本的 Xcode 和 Swift。

我做了什么:

出于测试目的,我做了以下工作:

  1. 创建了一个选择“使用核心数据”选项的 macOS 应用程序(该应用程序不是基于文档的);
  2. 将 2 个 NSTextField 拖入 Storyboard 将 NSObjectController 拖入视图控制器场景;
  3. 将 Employee Entity 添加到 Core Data 模型中,具有 2 个属性“name”和“surname”;
  4. 如何将我的数组控制器绑定到我的核心数据模型?
  5. 将 NSObjectController 设置为实体模式并输入“Employee”,
  6. 选择准备内容,选择使用延迟获取,因此选中所有三个选项;
  7. 将绑定检查器中的 NSObjectController 的 Managed Object Context 绑定到 View Controller 的 managedObjectContext;
  8. 绑定 NSTextFields 如下:- 对象控制器,控制器键- 选择,模型键路径- 名称(用于第一个文本字段)和姓氏(用于第二个)。

而已。

第一组问题:我做错了什么,如果不是完全错误的方法,如何解决?

我在 stackoverflow 上的一些帖子中读到,这样做可以自动保存和从核心数据模型中获取。这就是为什么我认为它应该工作。

所以这是第二组问题:这是真的吗?如果是,那么为什么在显示视图时不填充文本字段?如果不是,那么如果可能的话如何实现它(尝试编写尽可能少的代码)?

第三个问题:如果我使用了完全错误的方法,有人会帮助我使用 Cocoa 绑定连接 Core Data 和 NSObjectController 并向我展示使用正确方法编写尽可能少的代码的方法吗?

考虑到在野外没有关于这个主题的新帖子,我认为正确的答案可以帮助很多正在开发 macOS 应用程序的人。

提前致谢!

标签: macoscore-datansmanagedobjectcontextcocoa-bindingsnsobjectcontroller

解决方案



推荐阅读