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

mor*_*des 3 objective-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"之前告诉我预期')'.这里发生了什么?

Ben*_*tto 8

如果没有指定它是枚举,你不能像那样"裸"使用它:

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

应该管用.如果你想避免像那样指定它,你可以输入它:

typedef enum _VoiceName {
    PAD_RHYTHM,
    ....
} VoiceName;
Run Code Online (Sandbox Code Playgroud)

那么你就可以使用它VoiceName作为参数类型.