2011-12-25 17 views
0

私のインターフェイスで他のファイルのクラスを使用するのに少し問題があるようです。私はそう遠いことを書かれている方法...インターフェイスでカスタムクラスを使用する(Objective C)

#import "NodeBase.h" 

@interface Node : NSObject { 
@public 
    Node * testnode; 
} 
NodeBaseは、他のクラスのインポートを扱うヘッダファイルをある

は、IE

#import <Foundation/Foundation.h> 

#import "Node.h" 
#import "NodeConnection.h" 
#import "NodeProperty.h" 

私は取得していますエラーです」解析の問題:予想される型 "、このコンテキストでクラスを使用する方法はありませんか?それとも、構文が完全に間違っているのですか?

+1

'Node'が含まれている' Node'の開始前に、ライン@interface Node;を追加してみてください

後に続くことができます。あなたの 'Node'宣言で何らかの循環参照のように見えます。 –

答えて

2

お客様のNodeBase.hインポートNode.hNode.hNodeBase.hをインポートし、循環参照を作成します。これは許可されていません。

あなたは、あなたは単にあなたがNode*を参照する必要がある場所でNode.hをインポートすることができNode.h

#import <Foundation/Foundation.h> 
#import "NodeConnection.h" 
#import "NodeProperty.h" 

@interface Node : NSObject { 
@public 
    Node * testnode; 
} 

にすべてを置くことができます。

共通のインポートを非表示にするには(<Foundation/Foundation.h>)、SupportingFile/<Your-Project-Name>.pchファイルに入力してください。

+0

ああ、あまりにも意味をなさない、私は将来を見守ります、速い返信をありがとう、素晴らしいクリスマスを持っています:) – SacredGeometry

+0

私はこれを試してみましたが、私は他のクラスにノードクラスをインポートする必要があります私は、代わりがない限り、これらのクラスのいくつかを再考/抽象する必要があるかもしれないと思います。 – SacredGeometry

2

Iは以下の定義を使用している円形の依存性を除去するための使用方法:

@interface Node; 

又は

@class myClass; 

だけで、この行を追加するインターフェイスまたはクラスを定義し、それがコンパイラに知られてなります。実際の長い定義はそうポイントに、あなたのインターフェース

+0

レスリー、メリークリスマスありがとうございました。 – SacredGeometry

関連する問題