2010-11-03 42 views
1

我一直有一些麻烦最近使用自定义类作为类型。正如标题所描述的,我已经收到编译类似下面的一个错误:奇怪的行为与编译错误“预期说明符 - 限定符列表之前”CustomClass“”

expected specifier-qualifier list before 'MyClass' 

我的代码通常是沿着此线的东西:

@interface MyCoolClass : NSObject { 
    MyClass *myClassObject; // Error is on this line. 
} 

我也偶尔会使用这样的:

@interface MyCoolClass : NSObject { 
    IBOutlet MyClass *myClassObject; // Error again on this line 
} 

我不是真的知道这是很好用,但有时,我做了这样的事情,所以我可以我的目的以及界面生成器连接起来,使一个对象C应该在另一个对象上调用一个方法。

我已经能够在与其他项目成功之前做到这一点,但当我今天试图做到这一点时,它给了我这个错误。任何想法可能会导致它?据我所知,我做了和我在另一个项目中做的一样的事情。

这也是我的理解,这个错误通常会被抛出,如果类型没有定义,但我很确定,我已经定义了它。预先感谢任何帮助!

+1

发布'MyClass.h'的内容! – Yuji 2010-11-04 00:57:58

+0

你好,抱歉让我感到困惑,我并没有真正注意到我正在输入的内容。我发布的代码将是MyClass.h的内容 – 2010-11-04 20:52:53

回答

3

哦,GCC如何钝和不透明可你的错误可能是....

尝试使用LLVM编译器2.0编译。它会给你更多理智的错误。

在这种情况下,什么是通常事情是编译器没有什么线索MyClass有在先前包含的头文件中的语法错误不会导致编译错误直到在输出错误的文件中点击@界面。

它也可能是拼写错误。


或者,作为建议,你需要#IMPORT“MyClass.h”成头文件(或文件执行,或者甚至更好,PCH文件),以便MyClass的是伊娃声明之前定义。

@class MyClass; 

这也可以做到这一点。

+0

在任何情况下,如果您只是将该类用作ivar,则应该在标头中使用'@ class'。 – kperryua 2010-11-04 19:20:52

+0

感谢您的回复。我将编译器切换到LLVM,正如你所说,它确实给出了一个更全面的错误: 未知类型名称'MyClass' 我检查了我的代码,看看是否有拼写错误或其他代码相关错误和我什么都没找到。对于临时修复,我将我的类型更改为“id”,并且编译时没有错误,并且正常工作。还有什么建议?我可以使用“ID”,但我想知道我可能会做错什么。谢谢! – 2010-11-04 20:54:37

+0

Jesse,在引用类名之前,几乎可以肯定你忘记了#import“MyClass.h”或“@class MyClass;'。 – 2010-11-05 03:43:55

相关问题