我已经着手开发一个用于在 Mac OSX Snow Leopard 上进行微控制器编程的简单 Cocoa IDE 的个人项目。由于编程不是问题,因此我在选择架构来绘制应用程序的高级块时遇到了一些困难。我在想:
- 可以设置项目详细信息,类似于用户创建新项目时 XCode 所做的;可能包含可能存储在用户默认值或 plist 中的项目详细信息的附件视图。
- 可以将项目保存为自定义的特定文件类型,并具有应用程序将拥有的特定扩展名(基于文档的应用程序)。
- 可以将新文件添加到项目中,特别是将自动包含以进行编译的 h 文件头;选择新文件时,可以选择文件类型(类似于 XCode);
- 有一个简单的编辑器,基于文本视图,例如,没有语法着色、检查、突出显示;但是,以这样的方式设计它,以允许未来开发语法着色/检查,
NSScanner
例如,通过 ; - 可以根据选择的任何持久性方法自动生成 Makefile 进行编译。
stdout
有可能通过或其他更好的方法 将编译器详细程度记录到日志视图(文本视图?)中;- 使用
NSOutlineView
带有树控制器(例如)进行文件浏览(类似于左窗格中 XCode 的项目文件); - 将项目打包到类似文件夹的项目文件中,
NSFileWrapper
例如(包括 main.c 文件、附加头文件、自动生成的 Makefile 和用于项目设置的 plist 等); NSUserDefaults
通过应用程序共享的单例(例如) 将设置持久性用于项目设置和应用程序首选项;- 使用模型组件中的一些类通过微码编译器连接
NSTask
,并在日志文本视图中显示编译和上传结果; - ETC
如果你们中的任何人,比我有更多的经验,会开始这样一个项目,你会选择什么架构组件?相同(拆分视图、文本视图、NSTask
文件包装器、带有树控制器的大纲视图、将应用程序委托与文档分开以及文档控制器的共享实例等),还是您会选择不同的方法?一个更简单的?
我将不胜感激任何可能的提示。感谢您抽出宝贵的时间。如果有人有兴趣,我会随时了解进展情况。