使用Objective C中的枚举

Ash*_*wal 1 objective-c

我在.h文件中声明了一个枚举.

在Event.h文件中

typedef enum EventType {
    MovementStart = 100019,
    MovementStop = 100020,
    HeartBeat = 100021
} EventType;
Run Code Online (Sandbox Code Playgroud)

我已将Event.h导入到我的ViewController中,并尝试将其用作:

EventType eventType;
NSArray *eventTypes = [NSArray arrayWithObjects:eventType.MovementStart, nil];
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误:成员引用基类型'EventType'(又名'enum EventType')不是结构或联合.

我该如何解决 ?

Gav*_*vin 5

首先,要引用该枚举值,您不会键入eventType.MovementStart,您只需键入即可MovementStart.

其次,你的EventType枚举值只是整数,但是你只能将对象存储在一个中NSArray,所以无论如何这都不行.您可以通过替换它存储eventType.MovementStart[NSNumber numberWithInteger:MovementStart],或更简洁,@(MovementStart).