我试图理解Cocoa中的东西是如何工作的,但我正在努力解决一件事。我看到了http://cocoawithlove.com/2010/09/minimalist-cocoa-programming.html和http://casperbhansen.wordpress.com/2010/08/15/dev-tip-nibless-development/,我想我有点理解。
现在,我想对“基于文档的应用程序”做同样的事情。请问,有没有人知道类似上面的教程或示例?或者,我需要做些什么来使它工作?我想我需要创建NSDocumentController
- 但它与NSApplication有什么关系?我从那里创建NSDocument
?坦率地说,我有点失落......
答案 0 :(得分:10)
六个月前那是我!我没有找到一个像样的教程,但是使用默认的Xcode项目模板开始了一个新项目:
我开始使用Xcode为您启动的设置,当您开始一个新项目并逐步实施时。关于各种控制器类的使用,Stackoverflow上有一些很好的阅读,但这就是我所做的:
我绝不是专家,因此我会采取更好的方法进行纠正,但到目前为止,这种设置易于使用,易于维护且易于扩展。
注意:使用核心数据是可选的,但随着时间的推移,我开始喜欢它,并认为它非常强大,节省了大量时间。当您决定不使用Core Data时,上述设置仍然有效,但您必须管理自己的数据。
编辑:这个post解释了NSDocumentController的相关性。
来自Apple的EDIT2:This one也是一本有趣的读物。 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已有的各种架构并做出自己的选择。