0

是否可以在 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。

4

1 回答 1

1

去掉括号:

id<B2ContactListener> _B2ContactListener;

那应该行得通。

您可能要考虑的另一件事是将其NSObject *改为一个,因此您可以调用继承自的方法NSObject而无需强制转换。

于 2012-09-24T11:57:14.590 回答