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 ,工厂可以用数据来驱动。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容