美文网首页
关于枚举

关于枚举

作者: coder_hong | 来源:发表于2016-05-22 21:34 被阅读69次

    C语言中的另一种数据类型---枚举类型。枚举类型在iOS中也是很常用的

    枚举的概念

    • 枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数

    • 当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型

    枚举类型的定义

    • 一般形式为:enum 枚举名 {枚举元素1,枚举元素2,……};
    #import <UIKit/UIKit.h>
    
    enum Season {
        spring,
        summer,
        autumn,
        winter
    };
    
    
    • 结合typedef
    typedef enum {
        SexMale,
        SexFemale
    } Sex;
    @interface ViewController : UIViewController
    
    @property (nonatomic, assign) Season Sea;
    @end
    
    • 其余的两种定义方式
      • 定义枚举类型的同时定义枚举变量
    #import <UIKit/UIKit.h>
    
    enum Season {
        spring,
        summer,
        autumn,
        winter
    } sea;
    
    @interface ViewController : UIViewController
    
    @property (nonatomic, assign) enum Season Sea;
    @end
    
    • 省略枚举名称,直接定义枚举变量
    #import <UIKit/UIKit.h>
    
    enum {
        spring,
        summer,
        autumn,
        winter
    } sea;
    
    @interface ViewController : UIViewController
    
    @property (nonatomic, assign) enum Season Sea;
    @end
    

    枚举的注意

    • C语言编译器会将枚举元素(spring、summer等)作为整型常量处理,称为枚举常量
    • 枚举元素的值取决于定义时各枚举元素排列的先后顺序。默认情况下,第一个枚举元素的值为0,第二个为1,依次顺序加1。

    遍历枚举

    enum Season {spring, summer, autumn, winter} s;
    
    // 遍历枚举元素
    for (s = spring; s <= winter; s++) {
        printf("枚举元素:%d \n", s);
    }
    

    输出结果:


    在UIKIT中常见的枚举写法

    方式一

    #import <UIKit/UIKit.h>
    typedef NS_ENUM(NSInteger, HTTableViewCellStyle) {
        HTTableViewCellStyleDefault,
        HTTableViewCellStyleValue1,
        HTTableViewCellStyleValue2,
        HTTableViewCellStyleSubtitle
    };
    
    @interface ViewController : UIViewController
    
    @property (nonatomic, assign) enum HTTableViewCellStyle CellStyle ;
    @end
    
    

    方式二 位移操作枚举定义

    #import <UIKit/UIKit.h>
    
    typedef NS_OPTIONS(NSUInteger, HTTableViewCellStateMask) {
        HTTableViewCellStateDefaultMask                     = 0,
        HTTableViewCellStateShowingEditControlMask          = 1 << 0,
        HTTableViewCellStateShowingDeleteConfirmationMask   = 1 << 1
    };
    
    
    @interface ViewController : UIViewController
    
    @property (nonatomic, assign) enum HTTableViewCellStateMask StateMasStyle ;
    @end
    
    
    

    相关文章

      网友评论

          本文标题:关于枚举

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