2009-07-28 12 views
1

私が持っている:相互依存オブジェクトが

エラー:

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

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

これは私にこの与えるようにコンパイラの原因となる今「プロパティ」

前に期待指定-修飾子リストを、それをこれは独立してファイルを解析する順序と関係しているように見えますが、指し示されたオブジェクトが最初に宣言されている限り動作します。

どうすればこの問題を解決できますか?

答えて

2

@classを介して前方宣言を使用して、インタフェースをまだ見ていないAという名前のクラスがあることをコンパイラに知らせます。例えば

@class A; 
@class B; 

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

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

ここ転送-宣言する必要はありませんが、ちょうどB. AはすでにそれがBの宣言で使われている時間によって宣言されています。 – smorgan

+0

ありがとう、私はそれがそれのようなものになると感じました:-) – mjmdavis

関連する問題