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

时间:2010-09-16 01:44:28

标签: objective-c

  

可能重复:
  Can an objective C method signature specify an enum type?

“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'之前告诉我 expect')'。这是怎么回事?

2 个答案:

答案 0 :(得分:5)

您必须将其称为enum VoiceName

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

或者你可以输入它:

typedef enum {
    /* ... */
} VoiceName;

然后您可以将其称为VoiceName

答案 1 :(得分:0)

请记住这是Objective- C ,它需要来自:(enum VoiceName)voiceName。

如果您不想说enum,可以使用typedef。