iOS 位运算的运用

枚举类型的设计:

/**
 * 媒体类型
 */
typedef NS_OPTIONS(uint32_t, MediaType) {
    /** 不限制 */
    MediaType_All = 1 << 31,
    /** 文本 */
    MediaType_Text = 0,
    /** 图片 */
    MediaType_Photo   = 1 << 0,
    /** 音频 */
    MediaType_Sound   = 1 << 1,
    /** 视频 */
    MediaType_Video   = 1 << 2,
    /** 频道 */
    MediaType_Channel = 1 << 3,
    /** 图片+音频 */
    MediaType_Photo_Sound = MediaType_Photo | MediaType_Sound,
};

设置类型可以是 MediaType_Text | MediaType_Photo | MediaType_Sound (或运算)

mediaType = MediaType_Text |  MediaType_Photo |  MediaType_Sound //(或运算)

判断类型是否拥有某一类:

if ((mediaType & MediaType_Sound) == MediaType_Sound){
  //包含音频
}

你可能感兴趣的:(iOS 位运算的运用)