iOS 的type 类(class) 与枚举(enum)

iOS 中枚举 enum 用的很频繁,简单实用,switch if 判断不易出错。
但是随着项目的不断扩大,枚举类也在不断扩展,渐渐地超出控制范围,不知道如何下手。类型繁多,变得不可理解。

下面举个简单的例子,tableview中显示不同的cell,这种需求很常见,希望对大家在写的时候有帮助。

不同cell 我们用CellType来进行规定,必须严谨判断不对就会显示别的cell了。

typedef NS_ENUM(NSInteger, CellType) {
    CellType1,//默认从0开始
    CellType2,
    CellType3,
};

刚开始只有两个cell,
过了一个月产品经理要加一个类型cell
又过了一个月产品经理要加一个类型cell
又又过了一个月产品经理要加一个类型cell
又又过了一个月产品经理要 减少(what)一个类型cell
加加减减
减减加加
感觉世界都崩了,代码越看越恶心,毫无食欲,想屎。
最后的结果就是:bug,bug,...

现在来看正确的姿势

BaseCellModel :NSObject
BaseCell1Model :BaseCellModel
BaseCell2Model :BaseCellModel
BaseCell3Model :BaseCellModel
BaseCell4Model :BaseCellModel
BaseCell5Model :BaseCellModel

新需求新model新view ,不纠结不删改,来一个写一个,vvvm。

说了枚举不能多用
那么什么时候用呢?
参考

typedef NS_ENUM(NSInteger, UITextAlignment) {
    UITextAlignmentLeft = 0,
    UITextAlignmentCenter,
    UITextAlignmentRight,                   // could add justified in future
} NS_DEPRECATED_IOS(2_0,6_0) __TVOS_PROHIBITED;


UITextAlignment 还能怎么变呢?
像这种变化几乎等于零,用枚举就很好。
我们不需要七十二变,小心变不来了。

儿歌一首,油菜花(有才华)的你们也来写写吧。

虽然我们在一起,但是我们没关系,
想要和我在一起,先来签个小协议。
枚举不要写太多,小心最后卡死你,
VC多写没关系,不用不管随你去。

你可能感兴趣的:(iOS 的type 类(class) 与枚举(enum))