目标C方法签名是否可以指定枚举类型?

mor*_*des 1 objective-c

可能重复:
目标C方法签名是否可以指定枚举类型?

"VoiceName"是一个枚举,声明如下:

enum VoiceName {
    PAD_RHYTHM,
    PAD_RHYTHM2,
    PAD_RHYTHM3,
    PEEPERS,
    ATMOSPHERE,
    IMPULSE,
    FAST_PULSE,
    HAIRYBALLS_PADS,
    KICK
};
Run Code Online (Sandbox Code Playgroud)

编译器似乎不喜欢我在这样的方法签名中使用它:

-(void)pulseFiredWithSamplePosition:(float)position from: (VoiceName) voiceName;
Run Code Online (Sandbox Code Playgroud)

在"VoiceName"之前告诉我预期')'.这里发生了什么?

mip*_*adi 5

你必须把它称为enum VoiceName:

-(void)pulseFiredWithSamplePosition:(float)position from: (enum VoiceName) voiceName;
Run Code Online (Sandbox Code Playgroud)

或者你可以输入它:

typedef enum {
    /* ... */
} VoiceName;
Run Code Online (Sandbox Code Playgroud)

然后你可以称之为VoiceName.