我什么时候应该使用基于NSDocument的架构?

时间:2009-09-29 07:58:30

标签: cocoa

我是Cocoa的新手,我发现很难分辨何时使用基于NSDocument的架构和普通的NSApplication来创建我的应用程序。

我正在创建这些玩具项目以学习Cocoa:

  1. 待办事项列表应用
  2. 聊天程序(如Adium)
  3. 财务应用(简单的复式会计)
  4. 个人书签应用
  5. 类似CRM的联系人管理
  6. 我应该将哪一个作为基于NSDocument的应用程序?

    我肯定会尽可能使用CoreData,但NSDocument和普通的NSApplication与CoreData一起工作,所以我不确定这是否与我的问题相关。

3 个答案:

答案 0 :(得分:9)

只要文档的概念对您的应用程序有意义,您就可以使用NSDocument。这取决于您定义文档的内容。

使用待办事项列表应用程序的示例:

  • 如果您想管理单个待办事项列表或包含多个待办事项列表的单个数据库(类似于带有图像的iPhoto或带有歌曲的iTunes的方法),则NSApplication即可。

  • 如果您希望每个待办事项列表都存储在单独的文件中,并且能够在应用程序中的多个窗口中打开多个待办事项列表(类似于带文本的TextEdit或带有图像的预览),则NSDocument值得考虑。

答案 1 :(得分:3)

要问的问题不是您是否应该使用NSDocument,而是您是否打算制作面向文档的应用程序。示例#1,#3和可能的#5是您可以以文档为中心的应用程序(而不是以库为中心)。

一旦你决定你的应用程序是否使用文档,你是否应该使用NSDocument的答案直接来自。

答案 2 :(得分:2)

可能没有。

如果您创建的应用程序可以打开多个文档,则应使用NSDocument,如:

  • 文本编辑
  • 的Photoshop
  • TextMate的
  • 浏览器
  • ...