Разве нельзя иметь ссылку на протокол Objective C внутри класса C ++?
(id)<B2ContactListener> _B2ContactListener;
Строка приводит к двум ошибкам:
‘Ожидается; в конце списка объявлений‘
а также
‘C ++ требует спецификатора типа для всех объявлений».
Вот код
B2_ContactListener.mm:
#import "Box2D.h"#import "B2_ContactListener.h"
class ContactListener : public b2ContactListener
{
private:
(id)<B2ContactListener> _B2ContactListener; // ERRORs
public:
//Methods
};
B2_ContactListener.h:
#import "B2_Contact.h"
@protocol B2ContactListener
-(void)B2BeginContact: (B2Contact*) contact;
@end
Я использую текущий компилятор XCode BTW.
Оставьте скобки:
id<B2ContactListener> _B2ContactListener;
Это должно работать.
Еще одна вещь, которую вы можете рассмотреть, это сделать его NSObject *
вместо этого вы можете вызывать методы, унаследованные от NSObject
без необходимости кастовать.
Других решений пока нет …