.pch文件的作用及常見的一些問題


說明:

.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同理)。

添加.pch文件

 

點擊next。這里注意在彈出的對話框中的Targets項一定要把工程選中。不然在.pch文件中輸入#import的時候會沒有代碼提示

 

添加時記得選中工程

 

2:將工程的Prefix Header文件配置成該文件。選中工程->Targets->”工程名”->Build Settings 直接搜索Prefix 在Apple LLVM (version)-Language欄中的Prefix Header欄,添加”工程名/你新建的.pch文件”格式添加.pch文件。

 

工程配置.pch文件

 

3:在同一個欄目下,配置Precompile Prefix Header為YES。這樣預編譯后的pch文件會被緩存起來,可以提高編譯速度

 

設置Precompile Prefix Header為YES


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM