2014-11-25 39 views
1

我有两个类,Entity和EntityHandler。相互包含中断类型

EntityHandler有一个方法AddEntity。此方法将实体添加到NSMutableArray。

实体有一个名为subscribe的方法。它将对EntityHandler的引用分配给一个变量供以后使用。

将两个头文件包含在对方中后,项目就会中断。例如,

-(void) addEntity: (Entity *) mob; 

返回错误

Expected a type 

我该如何解决这个问题?

+0

C++的语法看起来不正确。你有正确的标记吗? – 2014-11-25 02:48:53

+0

你使用的语法很明显是Objective-C,而不是C++。我已经删除了C++标签。 – duskwuff 2014-11-25 03:13:32

回答

2

您正在寻找适用于您的ObjC类型的前向声明,以打破循环标题依赖关系。

它看起来是这样的:

// EntityHandler.h 

@class Entity; // << the forward declaration. not #import. 

@interface EntityHandler : NSObject 
-(void) addEntity:(Entity *) mob; 
@end 

这告诉编译器存在名为Entity的ObjC类。

然后你#import当你需要更多的类型名称(可能在EntityHandler.m)。