美文网首页
位移枚举

位移枚举

作者: 哔哩哔哩智能喵 | 来源:发表于2016-12-12 16:36 被阅读16次
    • 位移枚举和普通枚举的区别

      • 位移枚举可以传递多个参数,普通的枚举只能传递单个参数

    /**
     * 普通枚举
     */
    typedef NS_ENUM(NSInteger,XCType)
    {
        XCTypeTop,
        XCTypeBottom
    };
    /**
     * 位移枚举
       一个参数可以传递多个值
       如果是位移枚举,观察第一个枚举值,如果该枚举值!=0,那么可以默认传0,如果传0做参数,那么效率最高
     */
    typedef NS_OPTIONS(NSInteger, XCTypec) {
        XCTypecTop = 1<<0,//1*2的0次方 = 1
        XCTypecBottom = 1<<1,//1*2的1次方 = 2
        XCTypecLeft = 1<<2,//1*2的2次方 = 4
        XCTypecRight = 1<<3//1*2的3次方 = 8
    };
    
    -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
    {
        [self test: XCTypecTop | XCTypecLeft |XCTypecRight];
    }
    -(void)test:(XCTypec)typec
    {
        NSLog(@"%ld",(long)typec);
        if (typec & XCTypecTop) {
            NSLog(@"-%zd",typec & XCTypecTop);
            
        }
        if (typec & XCTypecLeft) {
            NSLog(@"---%zd",typec & XCTypecLeft);
            
        }
        if (typec & XCTypecRight) {
            NSLog(@"----%zd",typec & XCTypecRight);
            
        }
    }
    
    • 举个🌰
      在SDWebimage里有的地方就可以用位移枚举同时传递多个参数,在下面的代码中options:如果作为普通的枚举,只能实现一种图片处理,但是用了位移枚举,可以同时传递多个参数。需要注意的一点是,位移枚举不一定要传多个参数,根据业务需求来。
    -
    [self.imageView sd_setImageWithURL:[NSURL URLWithString:@"http://img4.duitang.com/uploads/blog/201310/18/20131018213446_smUw4.thumb.600_0.jpeg"] placeholderImage:[UIImage imageNamed:@"Snip20160221_306"] options:SDWebImageCacheMemoryOnly | SDWebImageProgressiveDownload progress:^(NSInteger receivedSize, NSInteger expectedSize) {
            
        } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
            
            switch (cacheType) {
                case SDImageCacheTypeNone:
                    NSLog(@"直接下载");
                    break;
                case SDImageCacheTypeDisk:
                    NSLog(@"磁盘缓存");
                    break;
                case SDImageCacheTypeMemory:
                    NSLog(@"内存缓存");
                    break;
                default:
                    break;
            }
        }];
    

    相关文章

      网友评论

          本文标题:位移枚举

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