Использование объектов / классов C ++ с протоколом Objective C - PullRequest
2 голосов
/ 28 апреля 2011

Привет, я пытаюсь скомпилировать код Objective C ++ / Protocol, но компиляция завершается неудачно с ошибкой «Ожидаемый спецификатор объявления перед протоколом» и аналогичной ошибкой для всех строк кода цели c в следующем заголовке.

#import <UIKit/UIKit.h>

#include <Category>

@protocol StoreDelegate <NSObject>
@optional
...//Protocol methods
...
...

@end

@interface Store : NSObject {
    id<StoreDelegate> delegate;
    BOOL downloadFailed;
    Category *currentCategory;
}

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

+ (Store *)sharedStore;
...//Class methods
...
...
@end

Обратите внимание, что «Категория» - это класс C ++.Если я удаляю связанный с протоколом код из класса, тогда код компилируется нормально.Есть ли способ реструктурировать приведенный выше код и заставить его скомпилироваться?

1 Ответ

2 голосов
/ 09 мая 2011

Возможно, вы включили этот заголовок в чистый исходный файл C ++.Убедитесь, что все файлы, содержащие этот заголовок, скомпилированы как Objective-C ++, либо изменив расширение на .mm, либо изменив тип файла на sourcecode.cpp.objcpp на вкладке «Общие» в информационном окне.

...