• 枚举enum


    枚举值:它是一个整形(int) 并且,它不参加内存的占用和释放 枚举定义变量即可直接使用,不用初始化. 枚举的定义如下:
    方式一:
    typedef enum{  //在这个地方,可以定义相同的名称,给要用到的类型起个标识符,这个地方,是可以省略的
        unknown,       //大括号里面的内容,依据程序员的需要来填充,使用逗号隔开,最后一个可以不使用符号,默认的序号是从0开始的,最好在标记时给它赋值=0
        //如果在中途给它定义了数字,比如unknown=7,则以后的字符的序号依次递增,iPad=8
        iPad,
        iPhone
    }TYPES;//枚举的名称,并且使用分号来结束
     
    方式二:
    enum  名称{
       枚举数据表
    };
    enum  type{
       
    };
     
    补充:2015年07月25日
    //----------------------------------------------------------------------------------
    1、枚举的定义写在哪里?
    答:跟在 #import “”后面写,写在类的前面,确保枚举的作用范围
    方式三:
    1)亦可以如下定义(推荐:结构比较清晰):
    格式:typedef NS_ENUM(NSInteger, 名称){};
     
    typedef NS_ENUM(NSInteger, Test1) 
    {  
        //以下是枚举成员  
        Test1A = 0,  
        Test1B = 1,  
        Test1C = 2,  
        Test1D = 3  
    };  
     
    2)位运算的方式定义,如下:
    等于号后面必须等于1
     
    typedef NS_ENUM(NSInteger, Test) 
    {  
        TestA       = 1,      //1   1   1  
        TestB       = 1 << 1, //2   2   10      转换成 10进制  2  
        TestC       = 1 << 2, //4   3   100     转换成 10进制  4  
        TestD       = 1 << 3, //8   4   1000    转换成 10进制  8  
        TestE       = 1 << 4  //16  5   10000   转换成 10进制  16  
    };  
    什么时候要用到这种方式呢?
    那就是一个枚举变量可能要代表多个枚举值的时候. 其实给一个枚举变量赋予多个枚举值的时候,原理只是把各个枚举值加起来罢了.
    当加起来以后,就获取了一个新的值,那么为了保证这个值的唯一性,这个时候就体现了位运算的重要作用.
    位运算可以确保枚举值组合的唯一性.
    因为位运算的计算方式是将二进制转换成十进制,也就是说,枚举值里面存取的是 计算后的十进制值.
    打个比方:
    通过上面的位运算方式设定好枚举以后,打印出来的枚举值分别是: 1 2 4 8 16
    这5个数字,无论你如何组合在一起,也不会产生两个同样的数字.
    手工的去创建位运算枚举,还有稍微有点花时间的,好在Apple已经为我们准备的uint.所以,用下面这种方式来初始化一个位运算枚举吧:
     
    typedef NS_ENUM(uint, Test) 
    {  
        TestA,  
        TestB,  
        TestC,  
        TestD,  
        TestE    
    };  
    多枚举值 赋值方式如下:
    Test tes = (TestA|TestB);  
     
    判断枚举变量是否包含某个固定的枚举值,使用前需要确保枚举值以及各个组合的唯一性:
    //----------------------------------------------------------------------------------
  • 相关阅读:
    用对象模式实现QTP的远程调用
    Python 常用类库
    User32.dll 函数的相关方法整理
    python ConfigParser – 配置文件解析
    python 中的 __init__()解释
    Access to the database file is not allowed. [ File name = ***\DataBase.sdf
    在遗忘中成长
    在MVC3里如何关闭Form标签
    javascript 中写cookie
    .NET之死和观念的力量【】
  • 原文地址:https://www.cnblogs.com/lignpeng/p/5444700.html
Copyright © 2020-2023  润新知