相互包括休息类型

时间:2014-11-25 02:00:01

标签: objective-c oop header-files

我有两个类,Entity和EntityHandler。

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

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

当两个头文件相互包含时,项目会中断。例如,

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

返回错误

Expected a type

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您希望为ObjC类型使用转发声明,以打破循环标头依赖关系。

看起来像是:

// EntityHandler.h

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

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

这告诉编译器有一个名为Entity的ObjC类。

如果您需要的不仅仅是一个类型名称(可能在#import中),那么就是EntityHandler.m