首页 > 解决方案 > 在基于文档的应用程序中的文档之间共享模型

问题描述

我的应用程序是基于文档的,用于NSPersistentDocument管理其核心数据堆栈。

当每个文档都有自己的数据时效果很好,但现在我希望文档共享其模型的一部分。就我而言,用户导入大文件,我不想为每个文档复制它们。

我想要一个与应用程序本身而不是特定文档紧密相关的模型。

我真的不知道该怎么做。NSPersistentDocument提供了一些方法来覆盖配置核心数据堆栈,但我不知道如何设置它。谁能给我一些提示如何实现这一目标?

标签: iosmacoscore-data

解决方案


非常有趣的案例,

NSPersistentDocument :可以与 Core Data 集成的文档对象 https://developer.apple.com/documentation/appkit/nspersistentdocument#relationships

我会为 MVC 意识形态添加我的 2 便士:

模型-视图-控制器 (MVC) 是一种架构模式,它将应用程序分为三个主要逻辑组件:模型、视图和控制器。这些组件中的每一个都是为处理应用程序的特定开发方面而构建的。

虽然它非常适合关系数据库,例如可以级联删除的 SQL,以及其他基于查询的操作。

但是当你想在 2 个对象之间耦合数据时,你会遇到一些问题。

  • 如果任何文档/记录依赖于其他兄弟姐妹,您需要同步它们,这通常是一个痛苦的**。
  • 如果任何文档非常大,如果它与 db 的其他成员具有级联依赖关系,那么您的数据库就会开始出汗。

可能的解决方案

由于持久文档可以与核心数据集成,因此请尝试将任何新数据放入核心数据并从中计算差异。

设计原则背后的意识形态

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.

这是完整的pdf


推荐阅读