Ссылка на протокол Objective C в качестве переменной экземпляра в классе C ++

Разве нельзя иметь ссылку на протокол 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.

0

Решение

Оставьте скобки:

id<B2ContactListener> _B2ContactListener;

Это должно работать.

Еще одна вещь, которую вы можете рассмотреть, это сделать его NSObject * вместо этого вы можете вызывать методы, унаследованные от NSObject без необходимости кастовать.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]