Я использую 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 и все прошло отлично! Я был бы счастлив, если бы кто-то мог объяснить мне причину этого.