iOS代码优化<一>避免庞大的if...else...

怎么避免冗余的if...else

举个例子,在 iOS 开发中,经常会遇到在设置 tableViewCell 时需要根据 indexPath 来设置不同 cell ,一般代码可能会是下面这个样子:

方法一:封装(表驱动法)

SEL methods[][3] = {

{ @selector(getFirstCell:) },

{ @selector(getSecondCell:) },

{ @selector(getThirdCell:) },

};

SEL sel =  methods[indexPath.section][indexPath.row];

[self performSelector:sel withObject:indexPath];

方法二:策略模式


方法三:封装cellViewModel。用工厂模式造cell

在MVVM中,dataSource 里面只存放一堆抽象的 cellViewModel ,并通过工厂来获得具体的 cell ,工厂可以用数据来驱动。

你可能感兴趣的:(iOS代码优化<一>避免庞大的if...else...)