objective-c - Objective-C 方法签名可以指定枚举类型吗?

标签 objective-c

“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 - Objective-C 方法签名可以指定枚举类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3723138/

相关文章:

ios - 当另一个属性的数量增加时生成更多属性

ios - 为什么 saveInBackgroundWithBlock 在我启用 Parse 的类中只工作*一次*?

objective-c - UITextField "value changed"字段更新时未触发

iPhone:了解现场崩溃报告:无法识别的选择器?

ios - 魔法记录导入(下一步)

ios - 内存不足警告且有足够的空 RAM

objective-c - @properties 的显式 getter/setter (MRC)

ios - 如何从 'http://country.io/names.json' 获取字典和数组

ios - 从iOS在后台将位置坐标发送到服务器

objective-c - 在状态菜单打开时更改状态菜单项的标题会导致我的 Cocoa 应用程序崩溃