2015-07-10 61 views
0

我正在構建一個應用程序,在那裏我做了一個Menu類,這是一個tableview呈現給用戶(包含不同視圖控制器的鏈接,它應該在點擊時呈現)。 而不是導入任何視圖。在我的viewc中的任意一個頭文件中,我決定將所有視圖控制器頭文件導入到我的Menu.h中。這樣我可以從菜單類中進行所有應用程序導航。然後,我將在我的appDelegate.h中導入menu.h,然後僅將appDelegate.h導入到所有視圖控制器。是否有任何不可預見的缺點,或者我應該採取另一種方式?謝謝這是一個很好的方式來構造頭導入

回答

0

如果它編譯那麼沒問題,但是最好在頭文件中使用前向聲明,這樣可以提高編譯時間。

任何自定義類型可以在頭文件中向前聲明中,使用類,具有:

@class YourViewController; 

,然後內使用類的實現文件,包括實際的頭文件:

#import "YourViewController.h" 

使用向前聲明也可以停止依賴循環其中A.h包括B.h,其本身在包括A.h

+0

我明白依賴循環很糟糕,但將menu.h包含在所有視圖控制器中是不對的。我的意思是,這是有道理的,因爲所有的vc只有一個需要菜單。向所有其他視圖控制器做出聲明,但目前的視圖控制器似乎很髒並且更雜亂。但是,你們不會有自我進口的問題。對不起,如果我不清楚 – DevilInDisguise

0

這樣做,你將有一個包含循環(這是壞的!)。

Menu.h被導入ViewController1.h

AppDelegate.h是進口Menu.h(和ViewController1.h

ViewController1.h是進口AppDelegate.h(和Menu.h(和ViewController1.h))

甲清潔解決方案是使用前向聲明需要時,並在.m文件中進行導入

相關問題