說明:
.pch文件是一個頭文件,定義在.pch文件中的內容能夠被項目中的其他文件訪問。簡單來說,在.pch文件中定義的弘定義會作用到項目中的所有文件。 對於xcode6中創建工程不在自動添加.pch文件了。查了下資料,很多資料認為.pch文件會影響效率。我到時覺得.pch文件總體上會加速編譯,因為xcode會對.pch文件中的定義預編譯並緩存。至於為什么會在xcode6中被踢掉,我猜是因為很多開發者使用方式不對,反而導致減慢編譯速度了吧。
作用及使用:
前面提到蘋果在xcode6之后踢掉.pch文件的原因猜測。我們可以聯想到.pch是把雙刃劍,提供便利性的同時使用不當可能增加Build的時間。我覺得這么便利的東西不能丟,不過同時要注意它的用法。
不要把絕大部分弘定義放進來。
公用性小的宏定義別放進來。
放置公用性高的頭文件,比如使用率較高的fundation框架,第三方庫頭文件。
為了整潔性,建立把零散的宏定義整理到某個頭文件再將該頭文件import入.pch文件。
如果不想使用.pch文件,我覺得可以這么做。
以MVC架構為例。 比如有一些控件的category。為了擁有pch那樣的便利性又不想作用到其他不會使用它的文件。我們可以將所有view層的文件繼承同一個父類,可以在這個父類中import所有需要用到的更view層有關的公用宏定義,fundation框架及第三方庫。 Model層和Controller層同理。
如何新建.pch文件 打開Xcode
1:新建文件選擇ios->Other->PCH File在選擇Next(watchOS和tvOS同理)。
點擊next。這里注意在彈出的對話框中的Targets項一定要把工程選中。不然在.pch文件中輸入#import的時候會沒有代碼提示。
2:將工程的Prefix Header文件配置成該文件。選中工程->Targets->”工程名”->Build Settings 直接搜索Prefix 在Apple LLVM (version)-Language欄中的Prefix Header欄,添加”工程名/你新建的.pch文件”格式添加.pch文件。
3:在同一個欄目下,配置Precompile Prefix Header為YES。這樣預編譯后的pch文件會被緩存起來,可以提高編譯速度