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!