Objective c 初始化枚举值时出错
下面是我在Ball类的头文件中创建的枚举: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
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
(literal0
)是一种类型,它们不能在没有铸造的情况下混合
创建一个无效的球类型并使用:
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),这个问题的真正问题最好通过特洛伊敌人的回答来解决。