ошибка iphone при модульном тестировании: ожидается, что '=', ',', ';', 'asm' или '__attribute__' перед токеном * - PullRequest
0 голосов
/ 10 марта 2010

При попытке собрать (Build-> build) модульный тест я получаю следующую ошибку. Мой модульный тест - это логический тест (он не запускается на устройстве).

Вещи, которые, вероятно, связаны с моей проблемой: Я использую libxml2 и обертку вокруг него (которую я нашел в cocoawithlove).

В этой оболочке определены некоторые функции C (это не класс Objective C с @interface и @implementation). Функция, которую я использую (и в которой происходит ошибка):

NSArray *PerformHTMLXPathQuery(NSData *document, NSString *query);

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

/Users/me/XCodeWorkspace/MyProject/XPathQuery.h:15:0 Expected '=', ',', ';', 'asm' or '__attribute__' before '*' token in /Users/me/XCodeWorkspace/MyProject/XPathQuery.h

Здесь есть несколько связанных вопросов, но, похоже, ни один из них не решил мою проблему. Особенно: ошибка iphone: ожидается '=', ',', ';', 'asm' или '__attribute__' перед '' foo ' Но здесь должен быть включен некоторый код на С ++.

Спасибо за помощь.

Ответы [ 3 ]

1 голос
/ 27 марта 2011

В моем случае, рассматриваемые .h и .m хорошо построены с обычной целью, и приложение также может работать.

Однако после того, как подмножество файлов перемещено под цель статической библиотеки, она получает эту ошибку компиляции при сборке статической библиотеки.

Застрял на некоторое время и попробовал методы из другого поста здесь , к сожалению, они не помогли в моем случае.

Отмечено, что эта ошибка произошла только для строки NSString, например,

  • extern double const kTimeout; // отлично
  • extern NSString * const kImageType; // ошибка компиляции

После вышеприведенного анализа и небольшого перерыва, в конечном итоге проблема решается путем добавления следующего импорта в .h - "Foundation / Foundation.h"

Надеюсь, это поможет.

0 голосов
/ 11 марта 2010

После попытки изменить тип файла моих файлов (я пробовал несколько разных вещей, но ни одна из них не помогла), я решил переписать эти файлы как файлы Objective C с методами вместо функций. Это решило мою проблему.

0 голосов
/ 11 марта 2010

Скорее всего, компилятор пытается скомпилировать ваш файл как код C, а не код Objective-C. Он видит что-то странное, например NSString, которое не является частью языка Си, поэтому он вас раздражает.

Если вы измените файл на Objective-C или Objective-C ++, он должен работать. (Вы можете сделать это, получив информацию о файле и изменив тип источника)

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