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

 

posted @   wjwdive  阅读(189)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示