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

enum VoiceName {
 PAD_RHYTHM,
 PAD_RHYTHM2,
 PAD_RHYTHM3,
 PEEPERS,
 ATMOSPHERE,
 IMPULSE,
 FAST_PULSE,
 HAIRYBALLS_PADS,
 KICK
};

编译器似乎不喜欢我在这样的方法签名中使用它:
-(void)pulseFiredWithSamplePosition:(float)position from: (VoiceName) voiceName;

它告诉我在 'VoiceName' 之前应该是 ')'。这里发生了什么?

最佳答案

你不能像那样“裸”地使用它而不指定它是一个枚举:

-(void)pulseFiredWithSamplePosition:(float)position from: (enum VoiceName) voiceName;

应该管用。如果你想避免这样指定它,你可以 typedef 它:
typedef enum _VoiceName {
    PAD_RHYTHM,
    ....
} VoiceName;

那么您将能够仅使用 VoiceName 作为参数类型。

关于objective-c - 客观 C 方法签名可以指定枚举类型吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3723138/

10-12 16:11