相互依赖的对象导致编译器错误

时间:2009-07-28 13:16:13

标签: objective-c compiler-construction

我有:

@interface A
@property (nonatomic, retain) B *toB;
@end

@interface B
@property (nonatomic, retain) A *toA;
@end

这导致编译器给我这个:

错误:'Property'之前的预期说明符限定符列表

现在,它似乎与独立解析文件的顺序有关,只要首先声明指向的对象,它们就会起作用。

我怎样才能解决这个问题?

1 个答案:

答案 0 :(得分:2)

通过@class使用前向声明让编译器知道有一个名为A的类,它尚未看到该接口。

例如:

@class A;
@class B;

@interface A
@property (nonatomic, retain) B *toB;
@end

@interface B
@property (nonatomic, retain) A *toA;
@end