那是六个月前的我!我也没有找到一个像样的教程,而是从一个使用默认 Xcode 项目模板的新项目开始:
当您开始一个新项目时,我开始使用 Xcode 为您生成的设置,并随着我的进行逐步实现。在 Stackoverflow 上有一些关于使用各种控制器类的好读物,但这就是我所做的:
- 由 Xcode 生成的文档类是我的顶级控制器。我不使用 NSDocumentController。
- 我的应用程序的每个用例都有许多 NSViewControllers 来管理用例的各种视图。这些控制器是动态换入和换出的。顶级控制器由 NSDocument 类管理(在我的例子中是 NSPersistentDocument,因为我使用的是 Core Data)。
我绝不是专家,所以我坚持纠正更好的方法,但到目前为止,这个设置很容易使用、易于维护和易于扩展。
注意:使用 Core Data 是可选的,但随着时间的推移,我开始喜欢它,并认为它非常强大并且可以节省大量时间。当您决定不使用 Core Data 时,上述设置仍然有效,但您必须管理自己的数据。
编辑:这篇文章解释了 NSDocumentController 的相关性。
EDIT2: Apple 的这本书也很有趣。
EDIT3:您确实需要 NIB(或现在称为 XIB),因为它们包含您的应用程序的 UI。您通过视图控制器(子类NSViewController
)将它们拉入:
NSString *aControllerName = [anIdentifier stringByAppendingString: @"ViewController"];
NSString *aNibName = [anIdentifier stringByAppendingString: @"View"];
Class aControllerClass = NSClassFromString(aControllerName);
[self setCurrentController: [[aControllerClass alloc] initWithNibName: aNibName bundle: [NSBundle mainBundle]]];
在上面anIdentifier
可能是Department
,这将实例化DepartmentViewController
并加载 XIB 名称DeparmentView
。
您可以使用 plist 来存储数据,但这不是必需的。有很多方法可以存储您的应用程序数据。您必须阅读有关 Apple 现有的各种架构并做出自己的选择。