美文网首页ios开发
2019-05-25 OC中枚举的使用

2019-05-25 OC中枚举的使用

作者: Daniel梁 | 来源:发表于2019-05-25 13:20 被阅读0次

    枚举在系统框架中用的很多,优点是可以以一组常量清楚表示某些状态或可组合的选项。比如我们在表示socket的连接状态的时候可以分为connected,connecting和disconnected。这时候就很适合用枚举了

    基本使用

    声明

    enum socketConnectionState{
        connectting,
        disconneted,
        connected
    };
    

    使用,比较繁琐,我们要告诉这是枚举类型,以及加上枚举的名称

     enum socketConnectionState state = connected;
    

    用typedef去简化使用

    声明

    enum socketConnectionState{
        connectting,
        disconneted,
        connected
    };
    typedef enum socketConnectionState socketConnectionState
    

    这里typedef作用是告诉系统enum socketConnectionState 跟 socketConnectionState是一样的
    使用

    socketConnectionState state = connected
    

    使用底层数据类型(int,string)去表示枚举值

    由于我们如果使用枚举值去做if等其他逻辑判断的时候可能会过于繁琐(名字太长?),在c++11标准中允许使用底层数据类型去表示枚举值
    OC中声明,为了保证他们可以组合使用(下面显然不应该组合)

    //下面以二进制表示
    

    //表示方向的枚举
    typedef enum direction : int direction;
    enum direction : int{
    //我们这里有三位枚举选项,所以三位二进制足以表示
    left = 1 << 0, //001
    right = 1 << 1, //010
    top = 1 << 2, //100
    bottom = 1 << 3
    };

    
    使用
    

    //左上
    direction leftTop = left | top;

    相关文章

      网友评论

        本文标题:2019-05-25 OC中枚举的使用

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