macos - 如何使用 NSObjectController 和使用 Cocoa 绑定的托管对象上下文
问题描述
搜索了整个互联网,但找不到我的问题的现代解决方案。我想通过 Cocoa Bindings 将 NSObjectController 与 Core Data 配对使用,并努力正确设置它。值得注意的是,我使用的是最新版本的 Xcode 和 Swift。
我做了什么:
出于测试目的,我做了以下工作:
- 创建了一个选择“使用核心数据”选项的 macOS 应用程序(该应用程序不是基于文档的);
- 将 2 个 NSTextField 拖入 Storyboard 将 NSObjectController 拖入视图控制器场景;
- 将 Employee Entity 添加到 Core Data 模型中,具有 2 个属性“name”和“surname”;
- 从如何将我的数组控制器绑定到我的核心数据模型?
- 将 NSObjectController 设置为实体模式并输入“Employee”,
- 选择准备内容,选择使用延迟获取,因此选中所有三个选项;
- 将绑定检查器中的 NSObjectController 的 Managed Object Context 绑定到 View Controller 的 managedObjectContext;
- 绑定 NSTextFields 如下:值- 对象控制器,控制器键- 选择,模型键路径- 名称(用于第一个文本字段)和姓氏(用于第二个)。
而已。
第一组问题:我做错了什么,如果不是完全错误的方法,如何解决?
我在 stackoverflow 上的一些帖子中读到,这样做可以自动保存和从核心数据模型中获取。这就是为什么我认为它应该工作。
所以这是第二组问题:这是真的吗?如果是,那么为什么在显示视图时不填充文本字段?如果不是,那么如果可能的话如何实现它(尝试编写尽可能少的代码)?
第三个问题:如果我使用了完全错误的方法,有人会帮助我使用 Cocoa 绑定连接 Core Data 和 NSObjectController 并向我展示使用正确方法编写尽可能少的代码的方法吗?
考虑到在野外没有关于这个主题的新帖子,我认为正确的答案可以帮助很多正在开发 macOS 应用程序的人。
提前致谢!
解决方案
推荐阅读
- unity3d - unity:计算刚体的角速度以始终面向特定方向
- javascript - 使用 Date-fns 将小时分钟和秒缩短到几分钟
- python - 随着时间的推移,如何将列标签添加到具有之前、期间和之后阶段的数据框?
- oracle - Oracle Apex - 自动每周电子邮件
- postgresql - 部署在 AWS 上的 Node/Postgres 应用程序的时间问题
- flutter - Flutter 使用 showDialog 时如何测试 WillPopScope
- python - 如果 sparse_validation_accuracy 高于基线,如何停止训练?
- ffmpeg - 使用另一个视频的 ffprobe 信息来转换另一个视频
- python - 如何通过 django 中的选中表单复选框过滤查询集?
- oracle - ORA-29278: error transitorio de SMTP: 451 5.7.3 STARTTLS 需要发送