Eci*_*ana 8 cocoa document-based
我试图理解Cocoa中的东西是如何工作的,但我正在努力解决一件事.我看到http://cocoawithlove.com/2010/09/minimalist-cocoa-programming.html和http://casperbhansen.wordpress.com/2010/08/15/dev-tip-nibless-development/我想我有点了解.
现在,我想对"基于文档的应用程序"做同样的事情.请问,有没有人知道类似上面的教程或示例?或者,我需要做些什么来使它工作?我想我需要创建NSDocumentController- 但它与NSApplication有什么关系?我NSDocument从那里创造?坦率地说,我有点失落......
Rog*_*ger 10
六个月前那是我!我没有找到一个像样的教程,但开始使用默认的Xcode项目模板的新项目:

我开始使用Xcode为您启动的设置,当您开始一个新项目并在我进行时逐个实现.关于各种控制器类的使用,Stackoverflow上有一些很好的阅读,但这就是我所做的:
我绝不是专家,因此我会采取更好的方法进行纠正,但到目前为止,这种设置易于使用,易于维护且易于扩展.
注意:使用核心数据是可选的,但随着时间的推移,我开始喜欢它,并认为它非常强大,节省了大量时间.当您决定不使用Core Data时,上述设置仍然有效,但您必须管理自己的数据.
编辑:这篇文章解释了NSDocumentController的相关性.
编辑2:Apple的这个也是一个有趣的读物.
编辑3:您确实需要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]]];
Run Code Online (Sandbox Code Playgroud)
在上面anIdentifier可能是Department,它将实例化DepartmentViewController并加载XIB名称DeparmentView.
您可以使用plist存储数据,但这不是必需的.存储应用数据的方法有很多种.您将不得不阅读Apple现有的各种架构并做出自己的选择.