Одна и та же ошибка во всех заголовках - ошибка: ожидается '=' ... перед 'протоколом' - PullRequest
1 голос
/ 19 апреля 2011

Я работаю над проектом iOS в течение некоторого времени, но теперь у меня есть ошибка, которая действительно смущает меня, и пока я не могу ее исправить, я даже не могу скомпилировать проект, поэтому мне нужна серьезная помощь!

Все началось с:

ошибка: ожидается '=', ',', ';', 'asm' или ' атрибут ' до 'протокола'

в PHCluesListViewController.h.Класс не менялся долгое время, и то, над чем я работал в момент ошибки, не имело ничего общего с этим конкретным классом.

Вот как это выглядит:

#import <UIKit/UIKit.h>

@protocol PHCluesListViewControllerDelegate;

@class PHClueListTableViewController;

@interface PHCluesListViewController : UIViewController {

    IBOutlet PHClueListTableViewController *clueListTableViewController;

    id <PHCluesListViewControllerDelegate> delegate;
}

- (void)mapDelegate;

@property (nonatomic, assign) id <PHCluesListViewControllerDelegate> delegate;

@end

@protocol PHCluesListViewControllerDelegate

- (void)mapUp:(PHCluesListViewController *)controller;

@end

Нет синтаксических ошибок и нет ничего плохого в коде в его контексте.Позже я узнаю, что если вы удалите весь код из заголовочного файла, ошибка переместится в другой случайный заголовочный файл или если вы импортируете другой заголовок, ошибка переместится в этот заголовок.

Я попытался перезапустить xcode, переместить проект в новый, переписать код в новый файл и переместить проект на другой компьютер с другой версией xcode - но безуспешно.

Я могу запускать другие xcode-проекты на моем компьютере.

Мне кажется, что xcode пытается каким-то нежелательным образом скомпилировать мои заголовки в этом конкретном проекте.

Помощь будет высоко ценится, спасибо заранее!

---------- РЕДАКТИРОВАТЬ !!!----------

Спасибо за быстрый ответ !!Хотя я нашел ответ.

Ошибка была "d", записанная за пределами реализации в совершенно другом файле / классе.Нашел это случайно ...

Если что-то подобное случится с кем-то еще;проверьте что-то вроде письма, написанного после @end или перед реализацией @ interface / @, или что-нибудь еще, что «обрезает края» общего синтаксиса.

Трудно найти причину такой ошибки, и я немного удивлен, что нашел ее так быстро среди 80 файлов (всего 4,5 часа).

Удачи !!

1 Ответ

0 голосов
/ 19 апреля 2011

Вы определяете @protocol PHCluesListViewControllerDelegate дважды. Кроме того, если требуется реализовать mapUp, вы можете добавить ключевое слово @required.

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