我有一个枚举
typedef enum {
kOne,
kTwo,
kThree,
kFour
} Enums;
而且,在我的.h文件中,我有
- (enum Enums)getEnum;
在我的.m文件中我有
- (enum Enums) getEnum {
return kOne;
}
但是,我收到了错误
从具有不兼容结果类型'枚举枚举'
的函数返回'int'
我正在返回其中一个枚举,所以我不确定错误是什么。
答案 0 :(得分:3)
您的方法签名应为:
- (Enums)getEnum;
答案 1 :(得分:1)
我认为您需要删除typedef enum {} Enums
中的typedef或删除方法返回类型中的enum
。
答案 2 :(得分:0)
你只需要
- (Enums) getEnum;
- (Enums) getEnum {
return kOne;
}
enum
用于定义。
Objective-C还有更好的NS_ENUM
用于编译时检查,有关详细信息,请参阅this post:
typedef NS_ENUM(NSInteger, Enums) {
kOne,
kTwo,
kThree,
kFour
};
答案 3 :(得分:0)
在.m文件中必须是
- (Enums) getEnum {
return kOne;
}
但.h文件仍然是
- (enum Enums) getEnum;
答案 4 :(得分:0)
您必须将您的枚举和typedef命名为name。您可以在定义中避免使用(枚举),这看起来更清晰。
enum enums {
kOne,
kTwo,
kThree,
kFour
};
typedef enum枚举枚举;
现在函数可以声明为,
Enums getEnum ();
和函数可以定义为,
Enums getEnum {
return kOne;
}