iOS 精简Controlelr代码的两个方法

Posted wjwdive

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 精简Controlelr代码的两个方法相关的知识,希望对你有一定的参考价值。

MVC是苹果推荐使用的ios APP架构。后来又有MVVM,MVP等架构出现。主要目的是让业务逻辑、展示、数据各个层级解耦。实现最大程度上的代码复用。

对MVC这种架构来说,随着APP中模的增多,控制器中的业务逻辑会越来越复杂,代码量会越来越多。一个文件有几千行也很常见。这时候就算打上mark找方法也是很费时间的事儿。

针对这种情况,我们可以把不必要的代码分离出来,如View及其子控件的构建,UITableView,UICollectionView的DataSource方法都可以单独另起一个类。

1、view层的构建可以放到一个分来中来实现。也可以用接口+消息转发第二步(forwardtarget:forSelector:)来实现。

2、DataSource的方法可以用消息转发的第三步,forwardInvocation:把方法实现都转移到另一个类中。UITableViewDelegate的方法为什么不也由其他方法来实现呢?

  其实也是可以的,但是UITableViewDelegate 有点击事件,最好是放到Controller里来实现,这种事件响应最好由控制器来做。

demo:

https://github.com/wjwdive/BindViewTest

 

以上是关于iOS 精简Controlelr代码的两个方法的主要内容,如果未能解决你的问题,请参考以下文章

如何验证提交到应用商店的存档代码

数据精简之(数据记录精简)

代码精简技巧

MVC过滤器使用案例:统一处理异常顺道精简代码

精简高效的CSS命名准则/方法

VMWARE ESXI 虚拟硬盘的格式:精简置备厚置备延迟置零厚置备置零