"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"之前告诉我预期')'.这里发生了什么?
如果没有指定它是枚举,你不能像那样"裸"使用它:
-(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作为参数类型.