objective-c – 基于文档的应用程序?

我正在编写一个可用于管理舞蹈学院的桌面应用程序.我的核心数据模型包含学生,教师,班级,发票等实体以及它们之间的各种关系.

我计划的用户界面包括一个垂直分割视图,左侧是类似iTunes的OutlineView.当您单击该大纲视图中的“学生”项目时,右侧面板的内容将从ManageStudents NIB交换.同样,如果单击大纲视图中的“发票”项,则当前视图将替换为ViewInvoices视图.相当简单,是吗?

我的困境在于是否要以文档为基础?我的所有阅读都表明,如果用户一次打开多个实体实例,那将是一个不错的选择.这不是这种情况 – 在任何时间点只会有一个主窗口的实例打开.

另一方面,我可以从我看到的基于NSDocument的示例中看到很多好处(说实话,我在Web上看到的大多数示例似乎都是基于文档的).如果我沿着这条路走下去,我很好奇是否要为每个基本实体或仅一个控制文档定义文档类型.

我们将非常感激地收到任何指导.或者,指向某个地方的指针,提供有关NSDocument何时/不合适的具体建议(来自Apple的“基于文档的应用程序概述”有用地建议“Word处理器和电子表格应用程序是基于文档的应用程序的两个示例” – 我希望对于其他真实世界的应用程序更具洞察力和相关性的东西)

最佳答案 想想你的问题领域.什么是“文件”模型?一个舞蹈学院?如果是这样,并且您认为您的用户只管理一个学院,那么基于文档的模型是不必要的.另一方面,如果您认为文档代表教师,那么很可能一个学院经理想要处理多个教师,因此文档模型似乎是合适的.

关键问题是独立性问题.如果应用程序模型中的所有对象都相关,则无需管理独立文档.另一方面,如果有一个松散的对象集合,每个对象都有自己的相关“子集”,那么这似乎就像是一组文档.这就是文字处理器基于文档的原因:一个文件中的文本,属性和图像与另一个文件中的文本,属性和图像无关,因此将它们视为独立文档是有意义的.

点赞