【发布时间】:2022-01-08 12:51:10
【问题描述】:
我正在为 macOS Swift 编写一个多文档应用程序。我从 Xcode 提供的 Document 应用程序模板开始。目前尚不清楚它是否是对象模型。 NSDocument是模型还是模型中包含的数据?
【问题讨论】:
标签: swift cocoa model nsdocument
我正在为 macOS Swift 编写一个多文档应用程序。我从 Xcode 提供的 Document 应用程序模板开始。目前尚不清楚它是否是对象模型。 NSDocument是模型还是模型中包含的数据?
【问题讨论】:
标签: swift cocoa model nsdocument
Apple says 认为“文档的数据称为数据模型”:
在 Cocoa 文档架构中,您的文档由
NSDocument的自定义子类表示。NSDocument类提供了管理文档的大部分行为。在您的子类中,您可以通过提供用于读取和写入文档数据的自定义代码来覆盖或微调此行为。文档的数据称为数据模型。每个NSDocument都有自己的NSWindowController,而NSWindowController又会创建一个用于显示文档内容的NSWindow 对象。因为基于文档的应用程序处理同时打开的多个文档,所以它使用
NSDocumentController来管理它们。 Cocoa 提供了管理文档的大部分基础设施。通过文件协调、版本管理和其他文档之间的冲突解决,它为使用 iCloud 提供了最简单的途径。
这个NSDocument 子类导入Cocoa 并且与UI 层代码纠缠不清,因此很难调用真正的模型对象(尽管它是一种有用的抽象)。我们中的许多人都努力使真正的“模型”对象不依赖于 UI/OS。
简而言之,NSDocument 管理的数据更适合被视为“模型”。
【讨论】: