zoukankan      html  css  js  c++  java
  • iOS开发:枚举的介绍与使用

    #import "ViewController.h"
    
    //第一种写法
    typedef enum
    {
        XMGDemoTypeTop,
        XMGDemoTypeBottom,
    }XMGDemoType;
    
    //第二种枚举,定义类型
    typedef NS_ENUM(NSInteger,XMGType)
    {
        XMGTypeTop,
        XMGTypeBottom,
    };
    
    //第三种枚举 ,位移枚举
    /**
     * 1:位移枚举:1:位移枚举可以传递多个参数值,通过按位或 |,如果是位移枚举,观察第一个枚举值,如果该枚举值!=0 那么可以默认传0做参数,如果传0做参数,什么度不做,那么效率最高
       2:1<<0:表示1左移0位,也就是 1 * 2的0次方
     *
     */
    
    typedef NS_OPTIONS(NSInteger, XMGActionType)
    {
    
        XMGActionTypeTop = 1<<0,  //1*2(0) =1
        XMGActionTypeBottom = 1<<1,//1*2(1)=2
        XMGActionTypeLeft = 1<<2,//1*2(2)=4
        XMGActionTypeRight = 1<<3,//8
    };
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
    {
        
        [self demo:XMGActionTypeTop | XMGActionTypeRight | XMGActionTypeLeft |XMGActionTypeBottom];
        
    //    [self demo:0];
    }
    
    
    
    /**
     * 1:按位与 & 1&1==1 1&0==0 0&0==0 只要有0则为0
       2:按位或 | 1|1==1 1|0==1 0|0==0 只要有1则为1
       3:传递了三个参数,三个参数先相互|得出一个值,再与XMGActionTypeTop济宁&操作,得出的数值,就可以在位移枚举中找到
     *
     */
    -(void)demo:(XMGActionType)type
    {
        NSLog(@"%zd",type);
        
        if (type & XMGActionTypeTop) {
            NSLog(@"向上---%zd",type & XMGActionTypeTop);
        }
        
        if (type & XMGActionTypeRight) {
            NSLog(@"向右---%zd",type & XMGActionTypeRight);
        }
        if (type & XMGActionTypeBottom) {
            NSLog(@"向下---%zd",type & XMGActionTypeBottom);
        }
        
        if (type & XMGActionTypeLeft) {
            NSLog(@"向左---%zd",type & XMGActionTypeLeft);
        }
        
    }
    @end
  • 相关阅读:
    Git commit 信息标准和丢弃必须要的commit
    Markdown list状态下插入代码
    INIT: vesion 2.88 booting
    I.MX6 support eMMC 5.0
    GitLab non-standard SSH port
    PenMount Touch显示鼠标指针驱动安装
    Android WebView remote debugging
    Android预安装可卸载程序
    jmeter(六)元件的作用域与执行顺序
    jmeter(五)JDBC Request
  • 原文地址:https://www.cnblogs.com/cqb-learner/p/5857235.html
Copyright © 2011-2022 走看看