Prefix Header 不宜過大會增加系統(tǒng)buid時間
- 創(chuàng)建 PrefixHeader.pch 文件
Untitled.png
- 設(shè)置路徑讓項目找到 PrefixHeader.pch 文件「$(SRCROOT)」
Untitled 1.png
相關(guān)知識點:
Precompile Prefix Header
內(nèi)容來自:http://www.cocoachina.com/articles/9635
注意:開關(guān)Precompile Prefix Header時蚁署,pch的編譯和導入機制是有很大不同的匕积。
如果Precompile Prefix Header為YES,那么pch會被預編譯洁墙,預編譯后的pch文件會被緩存起來,從而提高編譯速度盗舰⊥ス澹可以從下面的Build Log中看出:
如果Precompile Prefix Header為NO,那么pch不會被預編譯危喉,而是在每一個用到它導入的框架類庫的.m文件中編譯一次宋渔。例如a-Prefix.pch導入了,ViewController.m和AppDelegate.m中都使用了objc_property_t這個類型(注意ViewController.h/m和AppDelegate.h/m都沒有另外導入)辜限,那么在Build的過程中皇拣,在編譯ViewController.m和AppDelegate.m時,a-Prefix.pch會被編譯2次薄嫡,每個.m文件編譯一次氧急。如下圖:
由圖可知,如果Precompile Prefix Header為NO毫深,那么每個引用了pch內(nèi)容的.m文件都要編譯一次pch吩坝,可能Apple會另外做緩存機制,但是這樣還是降低了編譯的速度哑蔫。
既然Apple標準都建議我們不用pch了钉寝,那么還是盡量少用吧。當然闸迷,如果一定要用嵌纲,還是盡量減少pch文件中的內(nèi)容,降低工程對pch文件的依賴性腥沽,便于日后的遷移和解耦逮走。