2011-05-17 125 views
0

下面的代码应该返回当前项目的名称返回一个枚举

typedef enum ItemName {test1, test2} ItemName; 
- (BOOL)DoItemName{return ItemName;} 

的当前值,但我收到此错误:

error: Semantic Issue: Unexpected type name 'ItemName': expected expression 

回答

1

在你的代码ItemName定义了一个类型,而不是一个值。所以编写return ItemName相当于return int,它没有任何有意义的解释。编译器告诉你这一点。

+0

如何返回枚举而不是int? – evdude100 2011-05-17 23:02:08

+0

我的意思是,你的代码不返回一个变量,它返回一个类型。如果你想返回一些值,首先你必须声明一个'ItemName'类型的变量,然后返回它。 – Nekuromento 2011-05-17 23:06:30

+0

@ evdude100:它是什么意思*返回一个枚举类型(注意:不是一个值,但类型本身)?这不是你可以在C中做的事情。该枚举的*值*是'test1'和'test1'。 – Chuck 2011-05-17 23:08:11