建議在Prefix.pch中引用我的所有頭文件,然後在開發過程中不必鍵入#import頭文件?我應該把所有的頭文件放到Prefix.pch中嗎?
回答
我將所有標題添加到Prefix.pch,並且自那時以來我必須聲稱生活更容易。我只是不必總是導入標題,相信我,生活更容易。 :-)
我不會推薦這個。
主要原因是,頭文件可能會在您的開發過程中發生變化。如果您更改了一個標題,則會導致該骯髒,必須重建,現在您的整個項目將重建。這非常耗時,並且與pch文件的全部原因相反。
同樣的事情,如果你創建一個新的頭文件,將其添加到pch,現在觸發和整個重建。
但這裏沒有單一的答案。您可能擁有一個永遠不會(或很少)更改的第三方庫,這是相當標頭密集型的,所以預編譯它可能是減少構建時間的一種方法。試驗看看。
從標準的角度來看,你的包含應儘可能小。事實上,你不應該把任何你不需要的東西編譯到任何文件中。因此,在每個.h文件中,您應該主要包含超類,並且對所有其他引用使用@class
,然後僅包含在.m文件中。這給出了關於每個類/文件要求的最清晰的信息,並最小化了循環問題。
只有在大多數其他類中需要該文件/類時,才應將頭文件添加到Prefix.pch中。如果您只需要一個或兩個其他類中的頭文件,則無需將其添加到.pch中,因爲它需要更多時間才能編譯文件,並且每次運行項目時都會發生。
預編譯的頭文件被帶到一個目的:使編譯更快。它被編譯並存儲在緩存中,並在編譯期間自動包含在每個源文件中。它像每個源文件一樣,
#import "Prefix.h"
這對於項目範圍的#defines可能非常方便。 (僅供參考,#define語句是一個代碼味道)
的Xcode報價:
預編譯前綴頭將是最有效的,如果內容的前綴頭也包括改變很少的任何文件 。如果前綴頭文件中的 內容或其中包含的任何文件頻繁更改 ,則可能會對總體構建時間產生負面影響。
更明確的解釋是here
請記住這一點,當你在.PCH #IMPORT源文件頭。作爲提示,您可以將Prefix.h用於#import常量和實用程序源文件。
- 1. 我應該把所有的.o文件放在庫中?
- 2. 我應該把版本放在XSD文件名中嗎?
- 3. 我應該把log4j.properties文件放入庫中嗎?
- 4. 我應該將IBActions放在頭文件中嗎?
- 5. 我應該把我的JavaScript庫的版本號放在文件名中嗎?
- 6. PHP:我應該把所有的代碼寫在類中嗎?
- 7. 我應該把我的ASP.NET網站放在wwwroot文件夾中嗎?
- 8. 我應該把我的輸出文件放在源代碼控制中嗎?
- 9. 我們應該把所有的CSS內的HTML文件?
- 10. PHP/XHTML。我應該把所有東西放在回聲標籤中嗎
- 11. 我應該把使用版本放在我的文件頂部
- 12. 我應該將所有JavaScript源文件複製到一個文件中嗎?
- 13. 我應該把連接詞放在我寧靜的api裏嗎?
- 14. 我應該把KeepAlive放入我的finally塊嗎?
- 15. 我應該把「無」放入我的查找表嗎?
- 16. 我應該把我的日誌文件放在一個asp.net應用程序中?
- 17. 我應該把index.php放在Zend Framework的公共文件夾之外嗎?
- 18. 我應該在我的.py文件中放入ntlk.download()嗎?
- 19. 我不應該把git倉庫放在「htdocs」中嗎?
- 20. 我應該把演員放在域模型/類圖中嗎?
- 21. xcode編程,我應該把我的.xib文件放入哪個文件夾?
- 22. 爲什麼我應該把外部資源放在html頭部?
- 23. 我應該把我的flex項目放在我的rails項目中嗎?
- 24. 我應該同時使用頭文件和cpp /源文件嗎?
- 25. 你可以把#includes放在C++頭文件中嗎?
- 26. vim - 在vimfiles或vim74文件夾中啓用插件時,我應該放置所有的.vim文件嗎?
- 27. 把我所有的豆放在不同的文件
- 28. 我們應該把數據庫文件放在Android studio上?
- 29. git - 我應該把.git文件夾放在哪裏?
- 30. 我應該把XML文件放在哪個可繪製文件夾中?
你可以把這些頭,你可以在整個項目中使用它。不是所有的標題...看到這個鏈接以及http://stackoverflow.com/questions/2845211/ios-prefix-pch-best-practices –