2011-12-25 52 views
0

我在界面中使用來自其他文件的類似乎有點麻煩。到目前爲止我寫它的方式...在接口(目標C)中使用自定義類

#import "NodeBase.h" 

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

其中NodeBase是與其他類的進口涉及一個頭文件,即

#import <Foundation/Foundation.h> 

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

我正的錯誤是「解析問題:預期類型「,在這種情況下有沒有辦法使用類?或者我有完全錯誤的語法?

+1

一個'Node'其中包含了'Node'。看起來像是在'Node'聲明中出現的某種循環引用。 – 2011-12-25 12:48:46

回答

2

您的NodeBase.h進口Node.h,和您的Node.h進口NodeBase.h,創建一個循環參考。這是不允許的。

你可以把一切都在Node.h

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

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

然後,您只需在您需要引用Node*地方導入Node.h

如果您想隱藏常見的進口產品(例如<Foundation/Foundation.h>),可以將它們放入SupportingFile/<Your-Project-Name>.pch文件中。

+0

哦,這是非常有道理的,我將在未來繼續關注,謝謝你的快速回復有一個美妙的聖誕節:) – SacredGeometry 2011-12-25 13:16:34

+0

好吧,我沒有嘗試過,但我需要導入節點類到其他類,我想我可能只需要重新思考/抽象其中的一些類,除非有其他選擇。 – SacredGeometry 2011-12-25 16:54:35

2

我使用用於消除循環依賴使用以下定義的方法:

@interface Node; 

@class myClass; 

剛剛添加該行定義了接口或類並使其已知的編譯器。實際的長定義可以按照後

所以給點意見,嘗試添加行@interface Node;開始前爲您接口

+0

非常感謝你的迴應,聖誕快樂。 – SacredGeometry 2011-12-25 13:09:30