iphone error: expected ‘=’, ‘,’, ‘;’, ‘asm’ или ‘__attribute__’ перед ” foo ‘

Я пытаюсь привести пример verhere в другое приложение, и у меня возникли проблемы. Я скопировал все файлы и все фреймворки, но по какой-то причине я получаю кучу ошибок компиляции, которые я никогда раньше не видел и, следовательно, не знаю, что делать. Единственное различие заключается в том, что я не подал в суд на IB, и поэтому мне пришлось немного изменить его.

Что означает error: expected '=', ',', ';', 'asm' or '__attribute__' before 'foo' означает? … Я получаю эту ошибку несколько раз для разных файлов

В моей ситуации первая ошибка указывает на «MeterTable» .. class, который включает , и . Но эти файлы, кажется, импортируют штраф (если я удалю их, я получаю больше ошибок)

Любые предложения по отладке?

ТИА!

EDIT: Я все еще не могу понять это. Я буквально просто копирую файлы из примера в другой проект. Может кто-нибудь проверить это, пожалуйста? SpeakHerePort.zip и оригинал здесь SpeakHere.zip

Ваша проблема заключается в том, что вы компилируете SpeakHerePortAppDelegate.m, который является объектным C-файлом, но он косвенно включает MeterTable.h, который является заголовочным файлом C ++.

Переименуйте его в SpeakHerePortAppDelegate.mm (double m), чтобы он был скомпилирован как Objective C ++, и ваша проблема решена.

Назовите все ваши файлы .mm, а затем весь ваш код будет скомпилирован как Objective C ++

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

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

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

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

  • extern double const kTimeout; // fine
  • extern NSString* const kImageType; // compile error

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

Это звучит как незавершенное объявление, возможно, в файле заголовка. Найдите «foo» (или как бы там ни было символ) во всех файлах проекта, используя ⇧⌘F (Edit ▸ Find ▸ Find In Project …) в Xcode и / или просмотрите заголовки, в которые вы указываете, где MeterTable объявлен. Иногда компилятор путается о фактическом местоположении ошибки, поскольку файлы заголовков часто переносятся в другие файлы, поэтому проблема может проявляться в нескольких местах.

Возможно, это не применимо к этой конкретной ситуации, но у меня тоже была эта точная ошибка, которая была вызвана неправильной декларацией. В Objective-C убедитесь, что ваши объявления forward начинаются с знака @ – например

 @class MyClass; 

Те из нас, кто еще находится на автопилоте из C ++, забудут @, посмотрите, что XCode выделил class как зарезервированное ключевое слово и подумал, что все в порядке с миром. Это не.

Это означает, что у вас есть синтаксическая ошибка. Если вы вставляете этот код, его легче отлаживать.

У меня был аналогичный сценарий для некоторых из вышеперечисленных сообщений. Я написал class C ++, основанный на примерах в документации по службам очереди аудио, и имел эту проблему компиляции в тестовом проекте. Этот пост помог огромной сумме.

Сегодня я включил class C ++ в свой проект и снова получил ошибку построения. В моем сценарии я также должен был установить тип (используя окно «Получить информацию») в sourcecode.cpp.objcpp для classа object -c, который вызывал мой class C ++.

  • Регулировка громкости проигрывателя AVPlayer
  • Замена на устаревший размерWithFont: в iOS 7?
  • Как я могу заставить UITextField двигаться вверх, когда клавиатура присутствует?
  • UIScrollView не прокручивается после обновления до iOS7 / xcode 5
  • Ошибка с NSJSONSerialization - Недопустимый тип записи JSON (меню)
  • С ARC, что лучше: alloc или autorelease инициализаторы?
  • Плохой URL-адрес при запросе с помощью NSURL
  • Как получить размер NSString
  • Как получить разницу во времени в iPhone
  • Метод sizeWithFont устарел. boundingRectWithSize возвращает неожиданное значение
  • Только два закругленных угла?
  • Давайте будем гением компьютера.