由于Xcode不再自動生成PCH文件(Precompile Prefix Header File),所以需要我們自己創(chuàng)建,在新創(chuàng)建pch文件的時候,需要做的操作:


創(chuàng)建完成之后,在Build Settings里面找到下圖所示位置

關(guān)于路徑的填寫問題,雙擊打開之后有個彈框,然后用鼠標拖動創(chuàng)建好的 PCH 文件,拖到彈框之后放手,就會自動生成 PCH 的路徑
然后用$(SRCROOT)替換一下,就可以了(注意替換前后顯示的路徑是一致的方可)


注意觀察,替換前后下圖顯示的路徑是沒有變化的

以下內(nèi)容網(wǎng)上查找,屬于轉(zhuǎn)載,但發(fā)現(xiàn)也是轉(zhuǎn)載文章,嘗試但未找到原文章@Enrica_Shi:
https://www.cnblogs.com/wzdevelop/p/7339262.html

二、編輯PCH文件
?由于編輯器會自動幫你把所有的預(yù)編譯文頭文件導(dǎo)入到項目所有的源文件中,所以從編程規(guī)范上講,應(yīng)該利用條件編譯將Objective-C頭文件隔離起來。尤其是在混合編程時,這種操作就顯得格外重要。下面就具體演示一下。
?先在PCH文件中隨便導(dǎo)入一個OC分類的頭文件,然后在項目中新建一個C語言文件,在沒有利用條件編譯對OC分類頭文件進行有效隔離的情況,按住command + B鍵編譯一下,看看會出現(xiàn)什么情況:

?因為編譯器會將PCH中的頭文件導(dǎo)入到項目中所有的源文件中,而C語言的源文件是不可能識別OC頭文件中的內(nèi)容的,所以編譯器會報一堆的錯誤。現(xiàn)在修改PCH文件,利用條件編譯將OC分類的頭文件進行隔離,然后再重復(fù)上面的操作看一下還有沒有報錯:

?#ifdef OBJC(OBJC前后是兩條下劃線)和#endif可以將OC的頭文件與C語言的源文件進行有效的隔離。也就是說,你在OC頭文件前后加了這個條件編譯之后,編譯器便不再將OC的頭文件拷貝到C語言的源文件中,它只會把OC的頭文件拷貝到OC的源文件中,所以之前的錯誤都消失了。
?PCH文件可以很方便的將多個文件中都要使用的頭文件一次性導(dǎo)入到項目中所有的源文件中,同時,你也可以在PCH文件中定義全局使用的宏,這種操作可以有效幫你節(jié)約開發(fā)時間。但是,同時你也應(yīng)該注意到,PCH文件的使用,無形中增加了項目編譯的時間,應(yīng)該有選擇性的慎重使用。