2010-12-16 30 views
2

我在iPhone上玩點(僅模擬器)和學習上的點遊戲。 這是有點的遊戲,你將它們與「路徑」連接起來,如果你關閉了4個點創建的正方形,你就可以贏得廣場。Objective C導入循環警告

現在我收到一些警告,並希望瞭解如何將其刪除。 首先這是情況。 我有一個類表示2點之間的連接,稱爲Pathway。 我有一個叫做電路的類,它代表由4條路徑創建的電路。 so class Circuit有一個NSMUtable陣列的4路徑

和每個路徑有一個最多2個電路(每個路徑可以屬於最多2個電路)的NSMutable陣列。 因此,您可以看到有一個導入週期。

我使用@class在其中一個類中包含另一個類,因爲否則我會在編譯時遇到錯誤。

這一切正常,但我得到了其中一個類的警告,因爲它無法看到其他方法。

我該如何解決這個問題,以及處理這類問題的正確方法是什麼。

回答

7

文件pathway.h

@class Circuit; 

@interface Pathway { 
} 
... 
@end; 

文件pathway.m

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

... 

文件circuit.h

@class Pathway; 

@interface Circuit { 
} 
... 
@end; 

文件circuit.m

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

... 

您通常不需要需要聲明另一個類的聲明中的依賴類的完整聲明。不過,您需要執行文件中的聲明。所以,分手了。

+0

謝謝,這個很清楚。 – cromestant 2010-12-16 10:53:37

3

在您的.m文件中導入相應其他類的頭文件。使用.h文件中的@class指令可以引用那裏的類。

+0

其他有用的指令是@protocol。 你如何處理枚舉? – VdesmedT 2010-12-16 10:43:42

+0

@VdesmedT:只使用一個int類型。 – JeremyP 2010-12-16 16:55:38