2010-06-04 91 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