2010-12-16 12 views
2

私は楽しい(ちょうどシミュレータ)と学習のためのiphoneでドットゲームをやっています。 これはドットがあり、パスウェイにそれらを接続するゲームです.4ドットが作成する正方形を閉じると、正方形に勝ちます。目的Cのインポートサークルの警告

ここでいくつかの警告が表示されています。削除方法を理解したいと思います。 まずこれは状況です。 Pathwayという2ドット間の接続を表すクラスがあります。 4つの経路で作成された回路を表すcircuitというクラスがあります。 なので、class Circuitには4つのPathwaysのNSMUtable配列があります。

それぞれの経路は最大で2つの回路(各経路は最大2つの回路に属します)のNSMutable配列を持ちます。 あなたが見ることができるように、インポートサイクルがあります。

コンパイル時にエラーが発生するため、クラスの1つに@classを使用しました。

これはすべて動作しますが、他のクラスのメソッドが表示されないため、クラスのいずれかで警告が表示されます。

この問題を回避するにはどうすればよいですか、これらの種類の問題を処理する適切な方法は何ですか。

答えて

7

ファイルpathway.h

@class Circuit; 

@interface Pathway { 
} 
... 
@end; 

ファイルpathway.m

#import "circuit.h" 
#import "pathway.h" 

... 

ファイル

@class Pathway; 

@interface Circuit { 
} 
... 
@end; 

circuit.hファイルcircuit.m

#import "pathway.h" 
#import "circuit.h" 

... 

通常はありません別のクラスを宣言するヘッダー内の依存クラスの完全な宣言が必要です。ただし、実装ファイルに宣言が必要です。だから、物事を分割する。

+0

ありがとうございます、これは明らかです。 – cromestant

3

.mファイルで、他のクラスのヘッダーファイルをインポートします。 .hファイルに@class指示文を使用すると、そのクラスを参照することができます。

+0

その他の有用な指令は@protocolです。 どのようにenumを扱いますか? – VdesmedT

+0

@VdesmedT:int型を使用します。 – JeremyP

関連する問題