筆記整理之 - ios如何配置pch文件

PCH(Precompile Prefix Header File)文件,也就是預(yù)編譯頭文件抖拦。pch頭文件的內(nèi)容能被項(xiàng)目中的其他所有源文件共享和訪問(wèn),可以有效的幫程序員節(jié)約時(shí)間,提高開(kāi)發(fā)效率岩饼。

在Xcode6之前碎赢,創(chuàng)建一個(gè)新工程Xcode會(huì)在Supporting files文件夾下面自動(dòng)創(chuàng)建一個(gè)“工程名-Prefix.pch”文件低剔,但是Xcode6之后,新建項(xiàng)目就不會(huì)自動(dòng)生成pch文件肮塞,需要手動(dòng)創(chuàng)建并配置襟齿。所以本文先講如何創(chuàng)建并配置pch文件。

創(chuàng)建枕赵、配置pch文件

  • 如何創(chuàng)建pch文件
屏幕快照 2017-02-17 下午1.47.03.png

PCH文件的命名一般和它所在的項(xiàng)目同名猜欺,我這里為了簡(jiǎn)便一點(diǎn)就直接采用系統(tǒng)的命名了


![屏幕快照 2017-02-17 下午1.44.11.png](http://upload-images.jianshu.io/upload_images/2037432-ff154ff96e2036db.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

到這里就已經(jīng)創(chuàng)建好了pch文件,下一步來(lái)看如何配置pch文件

  • 如何配置pch文件
屏幕快照 2017-02-17 下午1.56.14.png

將Precompile Prefix Header后面的值修改為YES拷窜,然后雙擊Prefix Header后面的空白處开皿,Xcode會(huì)彈出一個(gè)輸入框,直接將PCH文件在項(xiàng)目中的相對(duì)路徑粘貼上去篮昧,按回車(chē)鍵即可配置成功赋荆。這里可能會(huì)有人問(wèn)怎么拿到pch文件的路徑呢

屏幕快照 2017-02-17 下午2.06.21.png

可能有人說(shuō)"啊,報(bào)錯(cuò)了",不報(bào)錯(cuò)才怪,我只是為了掩飾如何獲取路徑啊啊~~~其實(shí)你可以看到現(xiàn)在我們拿到了一個(gè)路徑,這是該pch文件所在的絕對(duì)路徑,但是前面說(shuō)了,我們要的是相對(duì)路徑.在項(xiàng)目中的相對(duì)路徑.很簡(jiǎn)單啊.

 
 //絕對(duì)路徑

/Users/soufang006/Dev/學(xué)習(xí)demo/如何創(chuàng)建pch文件/如何創(chuàng)建pch文件/PrefixHeader.pch 
 
 //相對(duì)路徑
 如何創(chuàng)建pch文件/PrefixHeader.pch
 

拿到相對(duì)路徑后

屏幕快照 2017-02-17 下午2.15.53.png

到這里,項(xiàng)目的pch文件就已經(jīng)配置完了.下面來(lái)看如何使用pch文件

  • 如何使用pch文件
    我們知道,一般項(xiàng)目在debug狀態(tài)下我們需要打印log來(lái)進(jìn)行調(diào)試與bug定位,但是在release狀態(tài)下,我們一般是不希望輸出log的.那關(guān)于這個(gè)需求我們就可以直接寫(xiě)在pch文件里了
屏幕快照 2017-02-17 下午2.25.32.png
屏幕快照 2017-02-17 下午2.25.51.png

以上就是關(guān)于如何配置 pch 文件.
說(shuō)完如何配置pch文件,就要說(shuō)一說(shuō)他的優(yōu)缺點(diǎn)懊昨。

關(guān)于pch文件的優(yōu)缺點(diǎn)

要說(shuō)pch文件的優(yōu)點(diǎn),無(wú)外乎得先談?wù)刾ch文件的作用:1.存放一些全局的宏(整個(gè)項(xiàng)目中都用得上的宏)窄潭;2.用來(lái)包含一些全部的頭文件(整個(gè)項(xiàng)目中都用得上的頭文件);3.能自動(dòng)打開(kāi)或者關(guān)閉日志輸出功能疚颊。

那關(guān)于大部分人說(shuō)的xcode6之后之所以不自動(dòng)生成pch文件,是出于提高編譯效率方面的考慮狈孔,畢竟預(yù)編譯也會(huì)提高Build的時(shí)間。
在網(wǎng)上看到的這篇博文說(shuō)的很有道理,我就直接粘過(guò)來(lái)了.

問(wèn)題1:那么材义,為什么會(huì)有很多人說(shuō)pch降低編譯速度均抽?

我想是因?yàn)槭褂梅绞讲粚?duì),反而導(dǎo)致編譯速度降低吧其掂。罪魁禍?zhǔn)拙褪谴罅康墓灿眯圆桓叩暮甓x和頭文件的引入油挥。編譯的時(shí)候整個(gè)工程范圍地查找和替換這些宏定義字段,重復(fù)導(dǎo)入這些頭文件款熬,不慢就奇怪了深寥。

正確的使用方式:

不要把所有的宏定義都放到pch文件中,尤其是共用性較小的宏定義;

將公用性高的頭文件放到pch中贤牛,比如fundation框架等惋鹅;

(整潔性原則)將零散的宏定義專(zhuān)門(mén)創(chuàng)建一個(gè)頭文件來(lái)放置,再導(dǎo)入到pch中殉簸,方便查看和修改闰集;

問(wèn)題2:如果不使用pch沽讹,又該如何處理公用的宏、框架和三方庫(kù)武鲁?

答案是使用繼承爽雄,在父類(lèi)的頭文件中定義宏和導(dǎo)入共用框架、三方庫(kù)沐鼠。需要用到的才去繼承挚瘟。可以根據(jù)項(xiàng)目的框架饲梭,各個(gè)層之間分開(kāi)去定義父類(lèi)乘盖。如MVC中的View層,父類(lèi)中可以添加控件的Category排拷,屏幕寬高宏等侧漓。

問(wèn)題3:即使知道pch的正確使用方式,為何大部分開(kāi)發(fā)者也盡量不使用pch文件监氢?

有些時(shí)候宏布蔗、框架和三方庫(kù)共用性高不高很難去界定和把握,就會(huì)造成糾結(jié)狀態(tài)浪腐,干脆就不用了纵揍。另一個(gè)最大的壞處,我想是pch降低了代碼的可移植性议街。把類(lèi)中使用的框架等放在pch中泽谨,要么你要重新去導(dǎo)入,要么把pch一同拖走特漩,還要?jiǎng)h掉沒(méi)用的代碼吧雹,代價(jià)也是蠻大的。

甩個(gè)鏈接:http://blog.csdn.net/ws1352864983/article/details/51909241

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末涂身,一起剝皮案震驚了整個(gè)濱河市雄卷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蛤售,老刑警劉巖丁鹉,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異悴能,居然都是意外死亡揣钦,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)漠酿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)冯凹,“玉大人,你說(shuō)我怎么就攤上這事炒嘲∮钜Γ” “怎么了团驱?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)空凸。 經(jīng)常有香客問(wèn)我,道長(zhǎng)寸痢,這世上最難降的妖魔是什么呀洲? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮啼止,結(jié)果婚禮上道逗,老公的妹妹穿的比我還像新娘。我一直安慰自己献烦,他們只是感情好滓窍,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著巩那,像睡著了一般吏夯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上即横,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天噪生,我揣著相機(jī)與錄音,去河邊找鬼东囚。 笑死跺嗽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的页藻。 我是一名探鬼主播桨嫁,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼份帐!你這毒婦竟也來(lái)了璃吧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤弥鹦,失蹤者是張志新(化名)和其女友劉穎肚逸,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體彬坏,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡朦促,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了栓始。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片务冕。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖幻赚,靈堂內(nèi)的尸體忽然破棺而出禀忆,到底是詐尸還是另有隱情臊旭,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布箩退,位于F島的核電站离熏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏戴涝。R本人自食惡果不足惜滋戳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望啥刻。 院中可真熱鬧奸鸯,春花似錦、人聲如沸可帽。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)映跟。三九已至蓄拣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間努隙,已是汗流浹背弯蚜。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留剃法,地道東北人碎捺。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像贷洲,于是被迫代替她去往敵國(guó)和親收厨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容