PCH:預(yù)編譯頭文件(Precompile Prefix Header File)
可以將使用多次的 .h 文件寫(xiě)入
可以將經(jīng)常使用的宏寫(xiě)入
可以將全局定義的變量寫(xiě)入(URL地址等)
優(yōu)點(diǎn):節(jié)約時(shí)間,提高開(kāi)發(fā)效率
缺點(diǎn):不利于代碼的移植、可能造成依賴關(guān)系、如果 pch 中的頭文件很多且很大(引用泛濫),可能會(huì)造成預(yù)編譯的過(guò)程變得緩慢。主要體現(xiàn)在用戶的體驗(yàn)上,表現(xiàn)是首頁(yè)進(jìn)入 App 的時(shí)間變長(zhǎng)。
創(chuàng)建和配置pch文件、
- 創(chuàng)建 pch 文件:選擇一個(gè)目錄,按住 command + N ,彈出窗口,選擇 iOS ---> Other ---> PCH File,如下圖所示:

- pch 文件命名:pch 文件命名一般和項(xiàng)目同名。如下圖所示:

- 預(yù)編譯后的 pch 文件會(huì)被緩存起來(lái),提高編譯速度:新建 pch 以后,需要進(jìn)行手動(dòng)配置。點(diǎn)擊項(xiàng)目 ---> Build Settings,在搜索框中輸入Prefix,快速定位到手動(dòng)配置的位置,將Precompile Prefix Header 值改為YES,如下圖所示:

- 獲取 pch 文件在項(xiàng)目中的絕對(duì)路徑:點(diǎn)擊項(xiàng)目目錄中的 pch 文件,然后點(diǎn)擊 Xcode 中的文件檢查器獲取絕對(duì)路徑,如下圖所示:

- 獲取 pch 文件在項(xiàng)目中的相對(duì)路徑:復(fù)制絕對(duì)路徑到第3步中的手動(dòng)配置處,雙擊 Prefix Header 右側(cè)框,在彈出的輸入框中粘貼文件的絕對(duì)路徑,在絕對(duì)路徑前添加
$(SRCROOT)/,相當(dāng)于輸入:$(SRCROOT)/項(xiàng)目名/.pch 文件名,如下圖所示:

$(SRCROOT):它代表的是工程的根目錄,即相對(duì)路徑,使用這一相對(duì)路徑的好處就是,即使項(xiàng)目被移動(dòng)位置,也不需要重新配置“Prefix Header”這一路徑;如果不適用相對(duì)路徑,而是使用絕對(duì)路徑的話,一旦項(xiàng)目路徑更改,編譯時(shí)就會(huì)報(bào)錯(cuò),錯(cuò)誤信息是:“.../EncapsulatedMethodsAndCalls.pch' file not found”。