我有一个枚举
typedef enum {
kOne,
kTwo,
kThree,
kFour
} Enums;
而且,在我的.h文件中,我有
- (enum Enums)getEnum;
在我的.m文件中,我有
- (enum Enums) getEnum {
return kOne;
}
然而,我得到错误
从具有不兼容结果类型"enum Enums"的函数返回"int"
我正在返回其中一个枚举,所以我不确定错误是怎么回事。
您的方法签名应该是:
- (Enums)getEnum;
我认为您需要要么去掉typedef enum {} Enums
中的typedef,要么去掉方法返回类型中的enum
。
在.m文件中,它必须是
- (Enums) getEnum {
return kOne;
}
但是.h文件仍然是
- (enum Enums) getEnum;
您只需要
- (Enums) getEnum;
- (Enums) getEnum {
return kOne;
}
CCD_ 3用于定义。
此外,Objective-C有更好的NS_ENUM
用于编译时检查,请参阅本文了解更多信息:
typedef NS_ENUM(NSInteger, Enums) {
kOne,
kTwo,
kThree,
kFour
};
您必须命名您的枚举和typedef以及名称。您可以在定义中避免(枚举),这看起来更加清晰。
enum enums {
kOne,
kTwo,
kThree,
kFour
};
typedef枚举枚举枚举;
现在函数可以声明为,
Enums getEnum ();
并且函数可以定义为,
Enums getEnum {
return kOne;
}