2012-05-17 27 views
1

我想知道如果我可以導入一個頭文件,但不包含任何頭文件包含的頭文件。在標題中導入文件

假設我有導入類B的類A.在類B中,我導入類C.有沒有什麼辦法可以將類C隱藏到類A?

回答

1

不,你不能這樣做:一旦你導入一個文件,它的所有導入也會進入。

然而,如果你希望只使用ClassA,您可以前瞻性聲明在你自己的頭,而不是導入ClassA的標題:

@class ClassA; 

現在您可以ClassA*類型的變量,使用ClassA*作爲返回類型或參數類型等。同時,不會加載ClassA標題的依賴關係。

通常,減少在頭文件中導入的頭文件數量是個不錯的主意,例如通過將與實現(而不是接口)相關的導入移動到.m文件中,並使用類擴展

+0

好的,謝謝。在「B類」中,我基本上試圖對UINavbar進行子類化併爲其設置自定義圖像,但我希望它只能在該視圖中顯示。問題是我必須在「A類」中導入「B類」,而最終發生的是A類也以動態圖像結束。我試圖在iOS 4中做到這一點,所以它是一個麻煩:/ –