编程的有效方法--用枚举表示选项及状态

1、好处

  在商城项目的开发中,用户购买完成之后,我们常常根据所买商品的类型push到相应的控制器中,而商品类型有很多种,如果使用判断语句,代码就显得臃肿或难以理解,此时,我们就可以使用枚举来表示商品类型,再用switch语句执行相应的操作,这样,代码就简洁很多,更加利于我们的开发;

  再者,在多选项卡中,用枚举来表示所选项,也更有利于我们的开发;

2、声明

typedef NS_ENUM(NSInteger, OrderType){
    OrderTypeLift = 0,
    OrderTypeGift = 1 << 0,      //左移
    OrderTypeBusi = 1 << 1,
    OrderTypeSafeCity = 1 << 2,
};

3、在状态中的使用

  根据所选择商品的类型执- (void)chooseGiftWithOrderType:(OrderType)type {

switch (type) {
        case OrderTypeBusi:
        {
            [self confirmBusi];
        }
            break;
        case OrderTypeLift:
        {
            [self confirmLift];
        }
            break;
        case OrderTypeGift:
        {
            [self confirmGift];
        }
            break;
        case OrderTypeSafeCity:
        {
            [self confirmCity];
        }
            break;
    }
}

4、多选操作

// WKWebView中监听加载进度的新值和旧值
[_wk addObserver:self
          forKeyPath:@"estimatedProgress"
             options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld
             context:nil];

5、注意点

  1>应该用枚举来表示状态机的状态、传递给方法的选项以及状态码等值,给这些值起个易懂的名字。

  2>如果把传递给某个方法的选项表示为枚举类型,而多个选项又可同时使用,那么就将各选项值定义为2的幂,以便通过按位或操作将其组合起来。

  3>在处理枚举类型的switch语句中不要实现default分支。这样的话,加入新枚举之后,编译器就会提示开发者:switch语句并未处理所有枚举。

 

posted @ 2016-08-04 16:07  来事啊  阅读(758)  评论(0编辑  收藏  举报