拥有大量代码的ViewControllers是正确的吗?

bra*_*ray 18 iphone cocoa-touch design-patterns objective-c ios

我对Cocoa和Objective-C(<1年)仍然很陌生.我的应用程序现在有50多个类,但是一些ViewControllers的代码非常拥挤,比如700行或更多.

我的问题是:拥有一个"大型"ViewController还是有用于将代码拆分成分数的模式?很多代码都在实现委托方法,这就是为什么我不知道如何将它移开.

我知道,我可以用pragma标记进行结构化.

感谢您的任何意见.

编辑(2013年12月):有一篇来自objc.ioChris Eidhof的关于这个主题的精彩文章.他还在Macoun 2013/Frankfurt上谈到了这个话题.分离出UITableView协议是一个很好的模式.

EDIT2 NSScreencast上还有2个视频,解释了重构ViewController的概念(第102集和第103集).

San*_*hry 6

我见过的大视图控制器最常见的原因之一是MVC架构中没有模型和控制器的分离.换句话说,您是否在视图控制器中处理数据?

如果是,请从VC中删除模型组件并将其放入单独的类中.这也将迫使您想要更好的设计.

供参考,在视图控制器中:

  • 处理UIView中的所有更改以及其中包含的UI元素.
  • 所有动画,过渡和CALayer操作.

在模型中:

  • 所有数据处理,包括排序,转换,存储等.