objective-c 不允许交叉引用,上代码:
A.h
#import <Foundation/Foundation.h>
#import "B.h"
@interface A : NSObject {
B* _b; // 报错点 1~
}
-(void) test:(B*)b; // 报错点 2~
@end
A.mm
#import "A.h"
@implementation A
-(void) test:(B*)b {
NSLog(@"test");
}
@end
B.h
#import <Foundation/Foundation.h>
#import "A.h"
@interface B : NSObject {
A* _a; // 报错点 3~
}
@end
B.mm
#import "B.h"
@implementation B
@end
头文件中不要包含彼此的头文件,将成员变量类型、方法参数类型改为由具体的类名 (A*,B*) 改为 id
.mm 实现文件中包含彼此的头文件不会出错,that's all!