PrefixHeader.pch是什么?
.pch
是全局引用文件,在其中添加需要全局引用的常量和設置。
屏幕快照 2015-10-30 下午6.22.51.png
PrefixHeader.pch在Xcode之前是默認添加
在Xcode6之前,新建一個工程的時候,系統會幫我們自動新建一個以工程名為名字的pch (precompile header)
文件,在開發過程中,可以將那些整個工程都廣泛使用的頭文件包含在該文件下,編譯器就會自動的將pch文件中的頭文件添加到所有的源文件中去,這樣在需要使用相關類的時候不需要使用import
就可以直接使用頭文件中的內容,很大程度上帶來了編程的便利性。
為什么Apple在Xcode6中默認不再創建pch
關于pch
的得與失,stackoverflow
上有段話講的比較透徹:
http://stackoverflow.com/questions/24158648/why-isnt-projectname-prefix-pch-created-automatically-in-xcode-6
Xcode 6去掉Precompile Prefix Header
的主要原因在于:
去掉自動導入的系統框架類庫的頭文件,可以提高原文件的復用性,便于遷移。
臃腫的Prefix Header會大大增加Build Time。
為了取代在Prefix Header中自動導入的框架,可以在每一個需要導入系統框架的文件中通過@import來手動導入,當然要確保Build Settings中的Enable Modules是打開的。
如果在Prefix Header中導入了,那么我們在工程的每一個文件中可以免費獲得使用的權利,而無需手動在每一個.h/.m文件中導入。該文件確有其方便之處。
Xcode6之后添加PrefixHeader.pch方法
在工程中增加一個pch文件,命名還是按照Xcode 5的模板比較好:工程名-Prefix.pch,例如a-Prefx.pch
屏幕快照 2015-10-30 下午6.35.41.png
屏幕快照 2015-10-30 下午6.36.00.png
屏幕快照 2015-10-30 下午6.40.31.png