我不明白在Objective-C和cocoa中如何使用术语“Document”。当我构建一个应用程序时,为什么我有一个“文档”?这对我来说毫无意义。我可以有像图像编辑器这样的应用程序,其中我可以同时打开100个图像。所以每个Image都是一个Document并拥有自己的Nib文件?有人能以一种人类可以理解的方式解释这个词吗?我认为,最好的例子就是很多。
答案 0 :(得分:4)
来自我的ancient but still mostly relevant Cocoa NSFAQ(不那么常见问题解答):
<强> Q18 强> 为什么我需要Document子类?
<强> A18 强> 因为您有一个需要对象来管理它的中央数据模型。
更详细地说,不要总是认为Document == File。大多数Mac应用程序中的概念文档可能确实映射到磁盘上的单个文件,但通常也是一个中心对象(经典MVC设计中的模型)。
如果您正在使用数据库,则Document可能会管理数据库连接,甚至最终会保存为持久保存该文件的文件。
对于您的照片库,文档可能是单一的,只包含一些设置,或者您可能有多个文档对应不同的布局和过滤器,以确定哪些照片可见。
如果您想要这样做,没有理由不能拥有多个文档甚至数百个文档 - 文档是一种向视图提供数据的方式,如果需要,您可以拥有数百个实例。 / p>
答案 1 :(得分:1)
基于文档,就Xcode模板而言,本质上是指NSDocument子类。 NSDocument和NSDocumentController提供了一个抽象,使得支持多个文档变得更加简单。
你是对的,你可以在没有NSDocument的情况下手动编码。但是,NSDocument确实使它更容易一些。