我对 Cocoa 和 Objective-C 还是很陌生(<1 年)。我的应用程序现在有大约 50 多个类,但是一些 ViewController 代码变得非常拥挤,比如 700 行或更多。
我的问题是:拥有一个“大”的 ViewController 是否合适,或者是否有将代码拆分成多个部分的模式?许多代码都在实现委托(delegate)方法,这就是为什么我不知道如何将其移走。
我知道,不过我可以使用 pragma 标记进行结构化。
感谢任何输入。
编辑(2013 年 12 月):有一个 great article from Chris Eidhof关于这个主题的 objc.io。他还在 Macoun 2013/Frankfurt 上谈到了这个主题。分离出 UITableView 协议(protocol)是一个很好的模式。
EDIT2 NSScreencast 上还有 2 个视频解释重构 ViewController 的概念(第 102 集和第 103 集)。
最佳答案
据我所知,大型 View Controller 的最常见原因之一是 MVC 架构中缺乏分离黑白模型和 Controller 。换句话说,您是否在 View Controller 中处理数据?
如果是,从 VC 中取出模型组件并将其放入单独的类中。这也会迫使您思考更好的设计。
供引用,在 View Controller 中:
- 处理 UIView 和其中包含的 UI 元素的所有更改。
- 所有动画、过渡和 CALayer 操作。
在模型中:
- 数据的所有处理,包括排序、转换、存储等。
关于iphone - 让 ViewController 包含大量代码是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8444078/