在C ++类中是否可以引用Objective 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
继承的方法而不必进行强制转换。关于c++ - objective-c 协议(protocol)引用作为C++类中的实例变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12564593/