美文网首页iOS-行知
OC中按位枚举的说明以及用法

OC中按位枚举的说明以及用法

作者: 半缘魔君 | 来源:发表于2017-03-22 17:54 被阅读86次

    OC中枚举类型有两种, 普通枚举和按位枚举

    1 普通枚举

    typedef NS_ENUM(NSInteger, UIControlContentHorizontalAlignment) {
    UIControlContentHorizontalAlignmentCenter = 0,
    UIControlContentHorizontalAlignmentLeft   = 1,
    UIControlContentHorizontalAlignmentRight  = 2,
    UIControlContentHorizontalAlignmentFill   = 3,
    

    };
    2 按位枚举

    typedef NS_OPTIONS(NSUInteger, UIControlState) {
    UIControlStateNormal       = 0,
    UIControlStateHighlighted  = 1 << 0,                  // used when UIControl isHighlighted is set
    UIControlStateDisabled     = 1 << 1,
    UIControlStateSelected     = 1 << 2,                  // flag usable by app (see below)
    UIControlStateFocused NS_ENUM_AVAILABLE_IOS(9_0) = 1 << 3, // Applicable only when the screen supports focus
    UIControlStateApplication  = 0x00FF0000,              // additional flags available for application use
    UIControlStateReserved     = 0xFF000000               // flags reserved for internal framework use
    

    };
    3 这个例子可以看出,两种枚举在声明的时候的区别
    普通枚举格式

    typedef NS_ENUM(枚举值类型, 枚举的名称) {
       枚举值1,//命名规范 枚举的名称+区别词 = 1 << 0或者其他
       枚举值2,
        ...
    

    }
    按位枚举格式

    typedef NS_OPTIONS(枚举值类型, 枚举的名称) {
     枚举值1,//命名规范 枚举的名称+区别词 = 0或者其他
     枚举值2,
        ...
     }
    

    4 按位枚举的用法

    Paste_Image.png

    相关文章

      网友评论

        本文标题:OC中按位枚举的说明以及用法

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