在定义类型时,不理解方法声明中"预期类型"编译错误的原因

Gru*_*kes 8 enums types objective-c ios

此代码将无法编译并生成错误消息"Expected a type".由于类型在上面声明,我不明白为什么.

enum TMyType
{
    Etype1,
    Etype2
};

@interface Factory : NSObject

+ (void) foo: (TMyType) actionType;

@end
Run Code Online (Sandbox Code Playgroud)

Jef*_*ski 7

要定义自定义类型,正确的方法是使用typedef.

尝试...

typedef enum 
{
    Etype1,
    Etype2
} TMyType;
Run Code Online (Sandbox Code Playgroud)

编辑:在这个问题被提出并回答之后不久,Apple推出了一种新的枚举数据类型. 这是一篇关于它的深入文章.

typedef NS_ENUM(NSInteger, TMyType) {
    Etype1,
    Etype2
};
Run Code Online (Sandbox Code Playgroud)