說(shuō)明:
.pch文件是一個(gè)頭文件哨苛,定義在.pch文件中的內(nèi)容能夠被項(xiàng)目中的其他文件訪問(wèn)蜈垮。簡(jiǎn)單來(lái)說(shuō)跳芳,在.pch文件中定義的弘定義會(huì)作用到項(xiàng)目中的所有文件。 對(duì)于xcode6中創(chuàng)建工程不在自動(dòng)添加.pch文件了斤儿。查了下資料,很多資料認(rèn)為.pch文件會(huì)影響效率恐锦。我到時(shí)覺(jué)得.pch文件總體上會(huì)加速編譯往果,因?yàn)閤code會(huì)對(duì).pch文件中的定義預(yù)編譯并緩存。至于為什么會(huì)在xcode6中被踢掉一铅,我猜是因?yàn)楹芏嚅_(kāi)發(fā)者使用方式不對(duì)陕贮,反而導(dǎo)致減慢編譯速度了吧。
作用及使用:
前面提到蘋果在xcode6之后踢掉.pch文件的原因猜測(cè)潘飘。我們可以聯(lián)想到.pch是把雙刃劍肮之,提供便利性的同時(shí)使用不當(dāng)可能增加Build的時(shí)間。我覺(jué)得這么便利的東西不能丟,不過(guò)同時(shí)要注意它的用法卜录。
不要把絕大部分弘定義放進(jìn)來(lái)戈擒。
公用性小的宏定義別放進(jìn)來(lái)。
放置公用性高的頭文件艰毒,比如使用率較高的fundation框架,第三方庫(kù)頭文件峦甩。
為了整潔性,建立把零散的宏定義整理到某個(gè)頭文件再將該頭文件import入.pch文件现喳。
如果不想使用.pch文件凯傲,我覺(jué)得可以這么做。
以MVC架構(gòu)為例嗦篱。 比如有一些控件的category冰单。為了擁有pch那樣的便利性又不想作用到其他不會(huì)使用它的文件。我們可以將所有view層的文件繼承同一個(gè)父類灸促,可以在這個(gè)父類中import所有需要用到的更view層有關(guān)的公用宏定義,fundation框架及第三方庫(kù)诫欠。 Model層和Controller層同理。
如何新建.pch文件 打開(kāi)Xcode
1:新建文件選擇ios->Other->PCH File在選擇Next(watchOS和tvOS同理)浴栽。
添加.pch文件
點(diǎn)擊next荒叼。這里注意在彈出的對(duì)話框中的Targets項(xiàng)一定要把工程選中。不然在.pch文件中輸入#import的時(shí)候會(huì)沒(méi)有代碼提示典鸡。
添加時(shí)記得選中工程
2:將工程的Prefix Header文件配置成該文件被廓。選中工程->Targets->”工程名”->Build Settings 直接搜索Prefix 在Apple LLVM (version)-Language欄中的Prefix Header欄,添加”工程名/你新建的.pch文件”格式添加.pch文件萝玷。
工程配置.pch文件
3:在同一個(gè)欄目下嫁乘,配置Precompile Prefix Header為YES昆婿。這樣預(yù)編譯后的pch文件會(huì)被緩存起來(lái),可以提高編譯速度
設(shè)置Precompile Prefix Header為YES