Objective c 初始化枚举值时出错

Objective c 初始化枚举值时出错,objective-c,enums,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' 我如何解决这个问题?Bal

下面是我在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'

我如何解决这个问题?

BallTypes
是一种类型,
int
(literal
0
)是一种类型,它们不能在没有铸造的情况下混合

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

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

...

ballType = noBall;

注意:通常枚举是大写的…

枚举应使用
NS\u ENUM
宏定义:

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

BallType ballType;

ballType = BallTypeNone;

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

可能重复@voromax它可以相关,甚至可能重复,但不是完全重复…即使它解决了问题并引入了良好的实践(谢谢,我不知道NS_ENUM),这个问题的真正问题最好通过特洛伊敌人的回答来解决。