我有一个相当复杂的窗口,由一个控制器类支持,显然正在增长以满足我的视图窗口的需求。虽然我相信我坚持使用适当的MVC,但我仍然无法管理相当大的控制器类。
你如何分解你的物体?也许使用类别?例如,一个类别用于处理窗口的底部,另一个类别用于处理我的NSOutlineView,另一个类别用于处理表格,依此类推等等?
欢迎任何想法或建议。
答案 0 :(得分:6)
这听起来像是一个复杂的窗口控制器,它正在发展到无法控制的比例?这是一个更常见的问题,因为像iApp这样的应用程序可以在一个窗口中完成大部分工作。
从Leopard开始,推荐的分解方法是将窗口的每个部分分解为自己的NSViewController
子类。因此,例如,您的大纲视图有一个视图控制器,每个内容视图都有一个视图控制器等。
另外,我想继续使用#pragma mark
来将代码文件划分为多个段,除了类别之外,我还喜欢使用类扩展来实现私有方法。
答案 1 :(得分:2)
这是一个简单的答案,但Xcode IDE的代码折叠功能可以方便您将注意力集中在课程的各个部分。另一个可能有用的小事是进入View-> Code Folding并打开Focus Follows Selection。这使得当前选择范围的背景颜色为白色,而其他一切都是灰色阴影。
答案 2 :(得分:0)
类别是理想的。为每个类别创建一个新文件,并按照您的建议按功能对它们进行分组。
答案 3 :(得分:0)
我在这样的情况下尝试使用类别,我最终会让自己感到困惑,想知道在世界上我是如何调用那种方法的时候“显然”不在我正在看的类中。
我建议在源代码中自由使用#pragma mark
。使浏览所有方法变得非常容易。