Странное поведение с ошибкой компиляции «ожидаемый список спецификаторов-спецификаторов перед CustomClass» - PullRequest
1 голос
/ 04 ноября 2010

В последнее время у меня были некоторые проблемы с использованием пользовательских классов в качестве типов.Как описано в заголовке, я получаю ошибки компиляции, подобные приведенной ниже:

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 Ответ

3 голосов
/ 04 ноября 2010

О, GCC, насколько тупыми и непрозрачными могут быть ваши ошибки ....

Попробуйте скомпилировать с помощью компилятора LLVM 2.0.Это даст вам гораздо больше вменяемых ошибок.

В этом случае обычно происходит в том, что компилятор не имеет ни малейшего представления о том, что MyClass означает в ранее включенном заголовочном файле есть синтаксическая ошибка, которая не вызывает ошибку компиляции, пока в файле не будет найден @interface, извергающий ошибку.

Это также может быть опечатка.*

Или, как предложено, вам нужно #import "MyClass.h" в файл заголовка (или файл реализации или, что еще лучше, файл PCH), чтобы MyClass был определен до объявления iVar.

@class MyClass;

Это тоже поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...