美文网首页
Objective-C的三种枚举

Objective-C的三种枚举

作者: 拳战攻城师 | 来源:发表于2018-11-23 17:11 被阅读0次

在Objective-C中可以通过三种方式来定义一个枚举类型。

一、C语言中的枚举

C语言中的枚举形如:

enum EOCConnectionState{
        EOCConnectionStateDisconnected,
        EOCConnectionStateConnecting,
        EOCConnectionStateConnected
};
//或者
typedef enum EOCConnectionState{
        EOCConnectionStateDisconnected,
        EOCConnectionStateConnecting,
        EOCConnectionStateConnected
}EOCConnectionState;

二、C++11新特性枚举

C++11标准中修订了枚举的某些特性,其中一项改动是:可以指明用何种“底层数据类型”来保存枚举变量,形如:

enum EOCConnectionState : NSInteger {
        EOCConnectionStateDisconnected,
        EOCConnectionStateConnecting,
        EOCConnectionStateConnected
};

上述代码的意思,以NSInteger类型来保存EOCConnectionState变量。
好处:从此可以前向声明指定枚举类型了。

三、OC的骚操作:NS_ENUM宏

在Foundation框架中,定义了一个辅助的宏用来定义枚举类型,形如:

typedef NS_ENUM(NSInteger,EOCConnectionState){
        EOCConnectionStateDisconnected,
        EOCConnectionStateConnecting,
        EOCConnectionStateConnected
};

这个宏的作用是,如果编译器支持C++11新标准,那么就使用新语法,否则就使用旧式语法。

本文内容来自——《Effective Objective-C 2.0》第5条:用枚举表示状态、选项、状态码

相关文章

  • Objective-C的三种枚举

    在Objective-C中可以通过三种方式来定义一个枚举类型。 一、C语言中的枚举 C语言中的枚举形如: 二、C+...

  • 位移枚举简单介绍

    枚举的三种实现方式 第一种枚举 第二种枚举定义类型 ** 第三种枚举** 位移枚举在这感谢下原文作者[天狐博客]|...

  • swift学习笔记(二)

    继续记录swift知识点: 1)枚举 枚举语法: ** 和 C 和 Objective-C 不同,Swift 的枚...

  • 位移枚举

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

  • 第8章:枚举

      在Swift中,枚举与C、C++、Objective-C中的枚举相比有巨大差异,可以认为枚举是由类蜕化而成的。...

  • 8、【Swift】枚举 - Enumerations

    枚举语法 使用 enum 关键词来创建枚举 指南针四个方向 与 C 和 Objective-C 不同,north,...

  • Swift枚举

    与C,Objective-C中的枚举相比,Swift中枚举功能更强大。它支持很多只有类才有的特性,如:Proper...

  • Objective-C枚举

    枚举类型 枚举的作用在于规范并语义化的定义代码中的状态、选项等常量。 如果一个变量只有几种可能的值,比如星期几的变...

  • NS_ENUM 和 NS_OPTIONS

    Objective-C 里的枚举有两种类型:NS_ENUM 和 NS_OPTIONS,本质上是一样的,都是枚举。 ...

  • 枚举的几种写法

    在这里,列举三种枚举的写法。 //枚举定义方法1typedefenum{WYNDemoTypeTop,WYNDem...

网友评论

      本文标题:Objective-C的三种枚举

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