枚举中的<<和|的用法

枚举中写法:

typedef NS_OPTIONS(NSUInteger, SDWebImageOptions) {
    
    SDWebImageRetryFailed = 1 << 0,
    
    SDWebImageLowPriority = 1 << 1,
    
    SDWebImageCacheMemoryOnly = 1 << 2,
    
    ageProgressiveDownload = 1 << 3,
    
    SDWebImageRefreshCached = 1 << 4,
};
其中“<< N”是向左移N位的意思,下面这张图可以很好的诠释:


比如SDWebImageRetryFailed | SDWebImageLowPriority就是 01 | 10, 即11 。

使用:

SDWebImageOptions option = SDWebImageRetryFailed | SDWebImageLowPriority;
    //检查是否包含某选项
    if (option & SDWebImageRetryFailed) {//0011 & 0001 = 0001
        //包含SDWebImageRetryFailed
        
    }else{
        //不包含SDWebImageRetryFailed
    }
    
    //增加选项
    option = option | SDWebImageCacheMemoryOnly;//0011 | 0100 = 0111
    
    //减少选项
    option = option & (~SDWebImageCacheMemoryOnly);//0111 & (~0100) = 0111 &  1011 = 0011




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值