標籤:
提醒:Xcode6之後就不再自動建立Pch先行編譯檔案
在Xcode6之前,建立一個新工程xcode會在Supporting files檔案夾下面自動建立一個“工程名-Prefix.pch”檔案,也是一個標頭檔,pch標頭檔的內容能被項目中的其他所有源檔案分享權限設定和訪問。是一個先行編譯檔案。
首先說一下pch的作用:
1.存放一些全域的宏(整個項目中都用得上的宏)
2.用來包含一些全部的標頭檔(整個項目中都用得上的標頭檔)
3.能自動開啟或者關閉日誌輸出功能
猜測原因:
雖然用了很久的Xcode6但是項目是xcode5之前建立好的,所以一開始並沒有發現缺少了這個pch檔案。蘋果為什麼要這麼做呢,原因可能是因為大家把大量的標頭檔和宏定義放到pch裡邊,導致編譯時間過長。蘋果去掉他可能是要加快編譯時間增加使用者體驗。雖然失去了編程的便利性。不得不佩服蘋果的以使用者為中心的思考方式。更詳細的討論可以去Stackoverflow上去看http://stackoverflow.com/questions/24158648/why-isnt-projectname-prefix-pch-created-automatically-in-xcode-6。
如何在Xcode中添加pch檔案:
Command+N,開啟建立檔案視窗:ios->other->PCH file,建立一個pch檔案
2,在工程的TARGETS裡邊Building Setting中搜尋Prefix Header,然後把Precompile Prefix Header右邊的NO改為Yes:
3.然後在Precompile Prefix Header下邊的Prefix Header右邊雙擊,添加剛剛建立的pch檔案的工程路徑,添加格式:“$(SRCROOT)/項目名稱/pch檔案名稱” ,$(SRCROOT)的意思就是工程根目錄的意思。如果還不太清楚的話可以右鍵pch檔案,然後show in finder:
(注意:$(SRCROOT) 一定要全部大寫,不信的話,你試試看!)
中黃色圈出來的就是$(SRCROOT),也就是工程的根目錄,然後後邊還有一個PchText和pch兩個檔案夾,所以完整的pch檔案的路徑就是:$(SRCROOT)/PchText/pch
添加完成後,他會自動幫你變成你工程所在的路徑:
可以了,編譯一下程式,如果有錯誤檢查一下添加的路徑是否正確。
4,將Precompile Prefix Header為YES,先行編譯後的pch檔案會被緩衝起來,可以提高編譯速度
iOS::;pch 檔案,使用配置