【发布时间】:2012-03-01 06:50:32
【问题描述】:
此代码不会编译并生成错误消息“预期类型”。由于类型是在上面声明的,我不明白为什么。
enum TMyType
{
Etype1,
Etype2
};
@interface Factory : NSObject
+ (void) foo: (TMyType) actionType;
@end
【问题讨论】:
标签: objective-c ios types enums
此代码不会编译并生成错误消息“预期类型”。由于类型是在上面声明的,我不明白为什么。
enum TMyType
{
Etype1,
Etype2
};
@interface Factory : NSObject
+ (void) foo: (TMyType) actionType;
@end
【问题讨论】:
标签: objective-c ios types enums
+ (void) foo: (enum TMyType) actionType;
或使用.mm(并使用objective-c++重新标记问题)。
【讨论】:
enum myType myArg = myEnumValue;。在 C++ 中,您可以像这样简单地引用它:myType myArg = myEnumValue;,因为 C++ 编译器会自动推断出 enum。
要定义自定义类型,正确的方法是使用 typedef。
试试……
typedef enum
{
Etype1,
Etype2
} TMyType;
编辑: 在提出并回答这个问题后不久,Apple 推出了一种处理枚举数据类型的新方法。 Here's 有深度文章。
typedef NS_ENUM(NSInteger, TMyType) {
Etype1,
Etype2
};
【讨论】: