pch文件是什么
預編譯頭文件(一般擴展名為.PCH),是把一個工程中較穩(wěn)定的代碼預先編譯好放在一個文件里。這些預先編譯好的代碼可以是任何的C/C++代碼渊抄,甚至可以是inline函數(shù)扼倘,它們在整個工程中是較為穩(wěn)定的,即在工程開發(fā)過程中不會經(jīng)常被修改的代碼键袱。
pch文件在iOS項目中的作用
- 文件中存放預編譯的頭文件,使得我們不用再項目中使用的時候再去引入頭文件摹闽。
- 可以將全局的宏存放在pch文件中蹄咖,提供全局使用。
pch文件的優(yōu)缺點
優(yōu)點很明了了付鹿,方便我們在項目中使用一些預先定義好的宏和頭文件澜汤;缺點就是如果預編譯文件比較大的時候會影響編譯速度铝量,對于App來說,啟動前處理編譯代碼比較耗時银亲,導致App啟動慢慢叨,不過如果不是預編譯文件特別大一般還是看不出來對App有什么影響的,可以自己試一試务蝠。
iOS項目怎么創(chuàng)建pch文件
1拍谐、打開項目,Cmd+N馏段,iOS下有一個PCH File的文件類型轩拨,選中Next。
2院喜、 命名亡蓉,一般以項目名+Prefix.pch命名,例如:DemoPrefix.pch喷舀。
3砍濒、打開文件如下圖:
這個文件中放預編譯文件,宏硫麻,頭文件等爸邢。
4、配置pch文件路徑
Xcode有絕對路徑和相對路徑拿愧,看一個文件的絕對路徑將這個文件拖拽至終端杠河,出現(xiàn)的路徑就是絕對路徑。我們需要在Xcode里設置pch的相對路徑浇辜,如果你設置的是絕對路徑券敌,那么你的項目換了位置,pch文件將會找到柳洋。
為什么要設置路徑待诅,以我的理解因為Xcode在編譯和處理文件的時候需要根據(jù)其文件路徑去尋找相應的文件,如果不設置路徑膳灶,Xcode找不到該文件咱士,則編譯的時候編譯不上或者編譯報錯。
打開TARGETS轧钓,在Build Settings下面搜索Prefix Header,找到Prefix Header锐膜,點擊右側(cè)空白處毕箍,如下圖所示:
在框里面輸入$(SRCROOT)/項目名/.../一級一級的文件夾名,直到到pch文件的文件名為止道盏,如圖:
這樣就可以了而柑。
這里有一點需要注意一下就是文捶,導入問價你路徑的時候,如果不是真實存在的文件夾媒咳,導入路徑的時候可以不寫文件夾名字粹排,比如項目中的Supporting Files文件,鼠標右擊涩澡,show in finder的時一看顽耳,這個文件夾并不是真實存在的,所以設置$(SRCROOT)/項目名/.../一級一級的文件夾名的時候不能引入該文件夾名妙同,如果引入則會報錯射富,因為路徑錯誤系統(tǒng)找不到pch文件
報錯
1、如果系統(tǒng)報找不到pch文件的錯誤粥帚,則肯定是路徑設置問題胰耗,如下圖錯誤信息:
這時候就去老老實實的檢查設置的pch文件路徑是否正確吧。