2012-03-08 5 views
-1

私の質問に対する回答を見つけようとしましたが失敗しました。iOSの逆の場合はインポートの回避策

2つのクラスを相互にインポートさせるための回避策はありますか?

#import "classB.h" 
@interface classA : NSObject 
{ 
    classB bObject; 
} 




#import "classA.h" 
@interface classB : NSObject 
{ 
    classA aObject; 
} 

代わりに、実際にあなたのヘッダーに自分のヘッダをインポートするのおかげ

答えて

4

は、前方クラス宣言を作るために@classを使用します。

@class classB; 
@interface classA : NSObject 
{ 
    classB bObject; 
} 


@class classA; 
@interface classB : NSObject 
{ 
    classA aObject; 
} 

これは単なるclassAclassBがクラスであることをコンパイラに指示します、実際にはインターフェイスのいずれもロードせずに。

あなたがclassAのいずれかを使用する場合、あなただけのclassA.h(またはその逆)にclassB.hをインポートすることができ、その場合の実装、「classBでの方法を、あなたはclassBclassAインターフェースが必要になります」。

+0

ありがとうございます。 –