2010-06-04 74 views
0

我这个代码使用用户定义类型

typedef enum result 
{ 

    error, 
    error1, 
    erorr2, 

}result; 

之后,我想实现,需要一个“结果”作为参数的方法定义了一个新类型

- (void) setError:(result)errorNumber 

看来,这是不允许的,并给我一个编译器错误。

不可能使用用户定义的类型作为方法参数?!?

+0

Pleeeease你能告诉我们错误是什么吗? – JeremyP 2010-06-04 15:59:51

+0

我已经移动了前缀文件中的tyoedef,并且所有工作都正确 – Luca 2010-06-04 16:26:58

回答

2

在使用之前,您需要导入包含typedef的头文件。例如:

File1.h:

typedef enum { a, b, c } resultType; 

File2.h:

#import "File1.h" 

... 


- (void) someMethod:(resultType)param; 

File1.h可以根据需要导入到尽可能多的报头(或执行)文件。

+0

抱歉写错了 - (void)setTError:(result)errorNumber; 但在这种情况下,它返回给我一个错误 – Luca 2010-06-04 12:08:18

+0

@Luca你的typedef在哪里?它在同一个文件中吗?什么是编译器错误消息? – 2010-06-04 12:13:36

+0

只有当我尝试在另一个.h文件中使用我的用户定义类型的广告参数方法时,编译器错误才会比较。我已经导入.h文件的类型声明...不可能在另一个文件中使用该文件,用typedef导入头文件?谢谢 – Luca 2010-06-04 12:24:00