Xcode и ZXingWidget: импорт заголовочных файлов Obj-C в файлах .mm - PullRequest
0 голосов
/ 25 августа 2011

Я использую XCode 4.0 для разработки проекта iOS.

В моем текущем проекте я правильно добавил библиотеку ZXingWidget, но мне пришлось изменить расширение .m в .mm в классе, который реализует MyViewController, чтобы импортировать «QRCodeReader.h» и «ZXingWidgetController.h», два заголовка, которые мне нужны для использования библиотеки ZXing.

Теперь, если в том же MyViewController.mm я хочу также импортировать мой AppDelegate (который, очевидно, является классом Objective-C), я получаю ошибку компиляции, которая Xcode сигнализирует в другие заголовочные файлы, которые рекурсивно добавляются моим AppDelegate. Эти ошибки имеют следующие виды:

GCC 4.2 Error - Instance variable '<unnamed'> has unknown size
Expected ';' before 'public'
Expected unqualified-id before 'public'

Я полагаю, что это потому, что я неправильно управляю микшированием Objective-C и C ++, и когда я комментирую строку #import "MyAppDelegate.h", ошибка исчезает.

Могу ли я что-нибудь сделать, чтобы решить эту проблему? Также обходной путь может сделать!

Спасибо!

Редактировать 1: Ошибка действительно возникает, только если я импортирую заголовок делегата приложения в этот файл .mm. В любой другой файл .m моего проекта я могу успешно импортировать тот же делегат приложения без ошибок. Я чувствую, что что-то не так с расширением .mm и GCC.

решено: у меня был другой интерфейс внешней библиотеки, который использовал этот код

@interface Name : NSObject {
    @private

    @public
        id var1;
        int var2; // ecc...
}

И ошибка указывала на ключевое слово @public. Я прокомментировал ключевое слово @private и все прошло отлично! Я был бы счастлив, если бы кто-то мог объяснить мне причину этого.

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