编译错误的奇怪行为“在'CustomClass'之前的预期说明符 - 限定符列表”

时间:2010-11-03 21:05:34

标签: objective-c cocoa macos

我最近在使用自定义类作为类型时遇到了一些麻烦。正如标题中所描述的那样,我遇到了类似于下面的编译错误:

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
}

我不确定这是否适合使用,但有时候,我做了类似的事情,所以我可以将我的对象与Interface Builder连接在一起,这样一个对象就可以在另一个对象上调用一个方法。

在成功完成其他项目之前我已经能够做到这一点,但是当我今天尝试这样做时,它给了我这个错误。什么可能导致它的想法?据我所知,我在这里完成了与其他项目相同的事情。

根据我的理解,如果没有定义类型,通常会抛出此错误,但我很确定我已经定义了它。

1 个答案:

答案 0 :(得分:3)

哦,GCC你的错误可能是多么迟钝和不透明......

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

在这种情况下,通常正在进行的是编译器不知道MyClass 是什么语法错误以前包含的头文件,在引发错误的文件中点击@interface之前不会导致编译错误。

这也可能是拼写错误。


或者,正如所建议的那样,您需要#import“MyClass.h”进入头文件(或实现文件,或者更好的是PCH文件),以便在iVar声明之前定义MyClass。

@class MyClass;

那也可以做到。