美文网首页
位移枚举

位移枚举

作者: 十年祤茉 | 来源:发表于2017-12-18 15:25 被阅读4次

枚举的其中一种方式:位移枚举,直接上代码,看完基本就懂了

// 位移枚举
typedef NS_OPTIONS(NSUInteger, ActionType) {
                                //   二进制    十进制
    ActionTypeUp    = 1 << 0,   // 0000 0001    1    二进制位左移0位
    ActionTypeDown  = 1 << 1,   // 0000 0010    2    二进制位左移1位
    ActionTypeRight = 1 << 2,   // 0000 0100    4    二进制位左移2位
    ActionTypeLeft  = 1 << 3,   // 0000 1000    8    二进制位左移3位
};

写一个方法:

-(void)action:(ActionType)type
{
    if (type == 0) {
        return;
    }
    
    if ((type & ActionTypeUp) == ActionTypeUp) {
        NSLog(@"上");
    }
    
    if ((type & ActionTypeDown) == ActionTypeDown) {
        NSLog(@"下");
    }
    
    if ((type & ActionTypeLeft) == ActionTypeLeft) {
        NSLog(@"左");
    }
    
    if ((type & ActionTypeRight) == ActionTypeRight) {
        NSLog(@"右");
    }
}

在viewDidLoad方法中调用本方法:

    ActionType type = ActionTypeUp |ActionTypeDown  | 1<<3 | 4; // 按位或运算: 0000 0001 | 0000 0010 | 0000 0100 | 0000 1000,因此得到十进制的值是15
//    ActionType type = 15;  // 上面一句的代码等同于这一句
    [self action:type];

相关文章

  • 位移枚举

    位移枚举和普通枚举的区别位移枚举可以传递多个参数,普通的枚举只能传递单个参数 举个?在SDWebimage里有的地...

  • Swift&OC位移枚举区别

    1、Swift 位移枚举写法 2、ObjC位移枚举写法 相比之下ObjC更加简单明了。

  • 位移枚举

    位移枚举 C语言枚举定义 苹果创建枚举的定义方式

  • 位移枚举

    枚举的其中一种方式:位移枚举,直接上代码,看完基本就懂了 写一个方法: 在viewDidLoad方法中调用本方法:

  • 位移枚举

    位移枚举 一. OC中常见的三种枚举 C语言枚举 // C语言枚举 typedef enum : NSUInteg...

  • 位移枚举

  • 位移枚举

    使用场景:同一次操作有多个选项,可以同时多选同时禁用摘取一段定义好的iOS代码 写一个方法,需要选择两种特性来实现...

  • 位移枚举

    //第一种写法typedef enum{DemoTypeTop,DemoTypeBottom,}DemoType;

  • 位移枚举

    ![Uploading 2B88CA96-A66A-4BE8-AD65-456C8CDB8DF3_547667.p...

  • 位移枚举

网友评论

      本文标题:位移枚举

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