如何避免类似视图控制器中的重复代码?

时间:2013-02-07 05:24:01

标签: ios oop uiviewcontroller

在iOS中,很多时候我的项目都有类似的屏幕,在这里和那里有一些差异。 随着时间的推移,一个类似的屏幕可能会出现,我在制作初始架构时不会注意到这一点。

所以,在这种情况下,我所做的是拥有很少的枚举属性,并在if-else语句中放入代码区别。

看起来很难看!特别是当我们在TableView数据源和委托方法中实现某些东西时,在任何地方都有相同的if-else或switch case。

现在如果我创建一个单独的VC,那么我必须在这里和那里复制粘贴很多相同的代码。 如果其中一个人有一个错误,那么它无处不在,而且很难追踪。

并且考虑到截止日期,将普通事物放在父类中变得非常困难,因为我不确定将来是否会出现类似的屏幕。

那么什么是不涉及此问题的通用方法呢?

1 个答案:

答案 0 :(得分:8)

好像你有3个选择:

inheritance拥有MySpecialViewController的超类,其中包含您认为有用的方法,并且能够在子类中覆盖以为该类添加其他功能。你提到你没有时间'提前做到这一点,那很好,找出常见的方法并在事后创建一个超类,让你的视图控制器成为它的子类。

categories如果您不需要覆盖共享功能并且遇到多个继承问题,请创建包含要在视图控制器中使用的帮助程序方法的类别。

utility class如果您重复使用的方法可以在自己的类中运行,并且出于某种原因上述两个选项不起作用,只需创建一个具有您使用的常用方法的MyUtils类。