2014-03-27 46 views
0

建議在Prefix.pch中引用我的所有頭文件,然後在開發過程中不必鍵入#import頭文件?我應該把所有的頭文件放到Prefix.pch中嗎?

+0

你可以把這些頭,你可以在整個項目中使用它。不是所有的標題...看到這個鏈接以及http://stackoverflow.com/questions/2845211/ios-prefix-pch-best-practices –

回答

-1

我將所有標題添加到Prefix.pch,並且自那時以來我必須聲稱生活更容易。我只是不必總是導入標題,相信我,生活更容易。 :-)

2

我不會推薦這個。

主要原因是,頭文件可能會在您的開發過程中發生變化。如果您更改了一個標題,則會導致該骯髒,必須重建,現在您的整個項目將重建。這非常耗時,並且與pch文件的全部原因相反。

同樣的事情,如果你創建一個新的頭文件,將其添加到pch,現在觸發和整個重建。

但這裏沒有單一的答案。您可能擁有一個永遠不會(或很少)更改的第三方庫,這是相當標頭密集型的,所以預編譯它可能是減少構建時間的一種方法。試驗看看。

1

從標準的角度來看,你的包含應儘可能小。事實上,你不應該把任何你不需要的東西編譯到任何文件中。因此,在每個.h文件中,您應該主要包含超類,並且對所有其他引用使用@class,然後僅包含在.m文件中。這給出了關於每個類/文件要求的最清晰的信息,並最小化了循環問題。

0

只有在大多數其他類中需要該文件/類時,才應將頭文件添加到Prefix.pch中。如果您只需要一個或兩個其他類中的頭文件,則無需將其添加到.pch中,因爲它需要更多時間才能編譯文件,並且每次運行項目時都會發生。

1

預編譯的頭文件被帶到一個目的:使編譯更快。它被編譯並存儲在緩存中,並在編譯期間自動包含在每個源文件中。它像每個源文件一樣,

#import "Prefix.h" 

這對於項目範圍的#defines可能非常方便。 (僅供參考,#define語句是一個代碼味道)

的Xcode報價:

預編譯前綴頭將是最有效的,如果內容的前綴頭也包括改變很少的任何文件 。如果前綴頭文件中的 內容或其中包含的任何文件頻繁更改 ,則可能會對總體構建時間產生負面影響。

更明確的解釋是here

請記住這一點,當你在.PCH #IMPORT源文件頭。作爲提示,您可以將Prefix.h用於#import常量和實用程序源文件。

相關問題