下面是我在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'
我该如何解决这个问题?
答案 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;
注意:常规枚举是首都......