我有两个类,Entity和EntityHandler。
EntityHandler有一个方法AddEntity。此方法将实体添加到NSMutableArray。
实体有一个名为subscribe的方法。它将EntityHandler的引用分配给变量以供以后使用。
当两个头文件相互包含时,项目会中断。例如,
-(void) addEntity: (Entity *) mob;
返回错误
Expected a type
我该如何解决这个问题?
答案 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
。