初始化枚举值时出错

时间:2013-06-05 15:13:03

标签: objective-c enums

下面是我在Ball类的头文件中创建的枚举:

typedef enum   {
redBall = 0,
blueBall = 1,
greenBall = 2

}ballTypes;

并在界面中:

ballTypes ballType;
在Ball.mm的init方法中

我初始化了ballType,如下所示:

ballType = 0;

我收到以下错误:

Assigning to 'ballTypes' from incompatible type 'int'

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

应使用NS_ENUM宏定义枚举:

typedef NS_ENUM(NSInteger, BallType) {
    BallTypeNone  = 0,
    BallTypeRed   = 1,
    BallTypeBlue  = 2,
    BallTypeGreen = 3
};

BallType ballType;

ballType = BallTypeNone;

通常,名称以大写字母开头,每个值都是附加有意义描述的名称。

答案 1 :(得分:1)

BallTypes是一种类型,int(文字0)是一种类型,如果没有强制转换,它们就无法混合。

创建无效的球类型并使用:

typedef enum   {
    noBall,
    redBall,
    blueBall,
    greenBall
} ballTypes;

...

ballType = noBall;

注意:常规枚举是首都......