美文网首页
枚举的使用

枚举的使用

作者: 逆战逆的态度 | 来源:发表于2016-06-22 11:13 被阅读24次

    枚举类型的定义

    enum 标示符{
    枚举数据表
    };
    枚举数据(枚举常量)是一些特定的标识符,标识符代表什么含义,完全由程序员决定。数据枚举的顺序规定了枚举数据的序号,从0开始,依次递增。
    例如:

    enum status{
        OK,
        NO,
    }
    

    enum 和enum typedef 的使用

    c语言里typedef的解释是用来声明新的类型名来代替已有的类型名,typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。
    enum是枚举类型, enum用来定义一系列宏定义常量区别用,相当于一系列的#define xx xx,当然它后面的标识符也可当作一个类型标识符。

    enum AlertStatus{
      AlertStatus_simple = 1,
      AlertStatus_Custom,
      AlertStatus_sure,
      AlertStatus_cancel,
    };
    
    typedef enum {
        UIButtonTypeCustom = 0,           
        UIButtonTypeRoundedRect,          
        UIButtonTypeDetailDisclosure,
        UIButtonTypeInfoLight,
        UIButtonTypeInfoDark,
        UIButtonTypeContactAdd,
    }UIButtonType;
    

    enum与状态(states)

    typedef enum _TTGState { 
        TTGStateOK = 0, 
        TTGStateError, 
        TTGStateUnknow
    } TTGState;
    //指明枚举类型
    TTGState state = TTGStateOK;
    //使用
    - (void)dealWithState:(TTGState)state { 
    switch (state) { 
          case TTGStateOK: //... 
          break; 
          case TTGStateError: //... 
          break; 
          case TTGStateUnknow: //... 
          break; 
      }
    }
    

    enum与选项 (options)

    //方向,可同时支持一个或多个方向
    typedef enum _TTGDirection { 
          TTGDirectionNone = 0,        
          TTGDirectionTop = 1 << 0, 
          TTGDirectionLeft = 1 << 1, 
          TTGDirectionRight = 1 << 2, 
          TTGDirectionBottom = 1 << 3
    } TTGDirection;
    
    //使用
    //用“或”运算同时赋值多个选项
    TTGDirection direction = TTGDirectionTop | TTGDirectionLeft | TTGDirectionBottom;
    //用“与”运算取出对应位
    if (direction & TTGDirectionTop) {      
           NSLog(@"top");
    }
    if (direction & TTGDirectionLeft) {
           NSLog(@"left");
    }
    if (direction & TTGDirectionRight) { 
          NSLog(@"right");
    }
    if (direction & TTGDirectionBottom) {   
          NSLog(@"bottom");
    }
    
    

    在开发过程中,最好所有的枚举都用“NS_ENUM”和“NS_OPTIONS”定义,保证统一。

    //NS_ENUM,定义状态等普通枚举
    typedef NS_ENUM(NSUInteger, TTGState) { 
            TTGStateOK = 0, 
            TTGStateError, 
            TTGStateUnknow
    };
    //NS_OPTIONS,定义选项
    typedef NS_OPTIONS(NSUInteger, TTGDirection) {       
         TTGDirectionNone = 0, 
         TTGDirectionTop = 1 << 0, 
         TTGDirectionLeft = 1 << 1, 
         TTGDirectionRight = 1 << 2, 
         TTGDirectionBottom = 1 << 3
    };
    

    相关文章

      网友评论

          本文标题:枚举的使用

          本文链接:https://www.haomeiwen.com/subject/bczgdttx.html