Xcode中如何添加pch文件

在Xcode6之前世剖,新建一個(gè)工程的時(shí)候,系統(tǒng)會(huì)幫我們自動(dòng)新建一個(gè)以工程名為名字的pch (precompile header)文件,在開發(fā)過程中笆焰,可以將那些整個(gè)工程都廣泛使用的頭文件包含在該文件下,編譯器就會(huì)自動(dòng)的將pch文件中的頭文件添加到所有的源文件中去见坑,這樣在需要使用相關(guān)類的時(shí)候不需要使用import就可以直接使用頭文件中的內(nèi)容嚷掠,很大程度上帶來(lái)了編程的便利性,但潛在的也帶來(lái)了一些問題荞驴,這也是在Xcode6中默認(rèn)不再創(chuàng)建pch的原因吧不皆。

關(guān)于pch的得與失,stackoverflow上有段話講的比較透徹:http://stackoverflow.com/questions/24158648/why-isnt-projectname-prefix-pch-created-automatically-in-xcode-6

As to where to put code that you would put in a prefix header, there is no code you should put in a prefix header. Put your imports into the files that need them. Put your definitions into their own files. Put your macros...nowhere. Stop writing macros unless there is no other way (such as when you need __FILE__). If you do need macros, put them in a header and include it.

The prefix header was necessary for things that are huge and used by nearly everything in the whole system (like Foundation.h). If you have something that huge and ubiquitous, you should rethink your architecture. Prefix headers make code reuse hard, and introduce subtle build problems if any of the files listed can change. Avoid them until you have a serious build time problem that you can demonstrate is dramatically improved with a prefix header.

In that case you can create one and pass it into clang, but it's incredibly rare that it's a good idea.

但有些時(shí)候熊楼,還是需要pch文件的霹娄,那么怎么在Xcode6中添加一個(gè)pch文件呢?

首先鲫骗,Command+N项棠,打開新建文件窗口:iOS->other->PCH file,創(chuàng)建一個(gè)pch文件挎峦,添加需要引入的頭文件名:


其次香追,修改工程配置文件,將創(chuàng)建的pch文件的路徑添加到building setting中的precompile header選項(xiàng)中去(路徑添加“$(SRCROOT)/項(xiàng)目名稱/pch文件


至此坦胶,完成了手動(dòng)添加pch文件透典,編譯一下程序,如果有錯(cuò)誤檢查一下添加的路徑是否正確顿苇。(假如你寫的時(shí)$(SRCROOT)這個(gè)開頭的峭咒,那就建在根目錄下,如果是$(PROJECT_DIR)纪岁,那就無(wú)所謂了)

這里注意凑队,開關(guān)Precompile Prefix Header時(shí),pch的編譯和導(dǎo)入機(jī)制是有很大不同的:

(1)如果Precompile Prefix Header為YES幔翰,那么pch會(huì)被預(yù)編譯漩氨,預(yù)編譯后的pch文件會(huì)被緩存起來(lái),從而提高編譯速度遗增。 (2)如果Precompile Prefix Header為NO叫惊,那么pch不會(huì)被預(yù)編譯,而是在每一個(gè)用到它導(dǎo)入的框架類庫(kù)的.m文件中編譯一次做修,降低了編譯速度霍狰。

總結(jié):既然蘋果在Xcode6中去掉了Precompile Prefix Header文件抡草,在開發(fā)的過程中可以盡量少用pch文件,如果要用也要盡量減少pch文件中得內(nèi)容蔗坯,降低程序?qū)ch文件的依賴康震。

至此,大功告成宾濒,編譯一遍签杈,新添加的pch文件就可以正常使用了^_^。

轉(zhuǎn)載自:http://www.cnblogs.com/mawenqiangios/p/5195866.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鼎兽,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子铣除,更是在濱河造成了極大的恐慌谚咬,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尚粘,死亡現(xiàn)場(chǎng)離奇詭異择卦,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)郎嫁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門秉继,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人泽铛,你說我怎么就攤上這事尚辑。” “怎么了盔腔?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵杠茬,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我弛随,道長(zhǎng)瓢喉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任舀透,我火速辦了婚禮栓票,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘愕够。我一直安慰自己走贪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布惑芭。 她就那樣靜靜地躺著厉斟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪强衡。 梳的紋絲不亂的頭發(fā)上擦秽,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼感挥。 笑死缩搅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的触幼。 我是一名探鬼主播硼瓣,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼置谦!你這毒婦竟也來(lái)了堂鲤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤媒峡,失蹤者是張志新(化名)和其女友劉穎瘟栖,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谅阿,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡半哟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了签餐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寓涨。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖氯檐,靈堂內(nèi)的尸體忽然破棺而出戒良,到底是詐尸還是另有隱情,我是刑警寧澤冠摄,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布蔬墩,位于F島的核電站,受9級(jí)特大地震影響耗拓,放射性物質(zhì)發(fā)生泄漏拇颅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一乔询、第九天 我趴在偏房一處隱蔽的房頂上張望樟插。 院中可真熱鬧,春花似錦竿刁、人聲如沸黄锤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鸵熟。三九已至,卻和暖如春负甸,著一層夾襖步出監(jiān)牢的瞬間流强,已是汗流浹背痹届。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留打月,地道東北人队腐。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像奏篙,于是被迫代替她去往敵國(guó)和親柴淘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

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

  • 在Xcode6之前秘通,新建一個(gè)工程的時(shí)候为严,系統(tǒng)會(huì)幫我們自動(dòng)新建一個(gè)以工程名為名字的pch (precompile h...
    oneDemo閱讀 337評(píng)論 0 1
  • 在Xcode6之前,新建一個(gè)工程的時(shí)候肺稀,系統(tǒng)會(huì)幫我們自動(dòng)新建一個(gè)以工程名為名字的pch (precompile...
    和玨貓閱讀 695評(píng)論 2 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理第股,服務(wù)發(fā)現(xiàn),斷路器盹靴,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • 在Xcode6之前,新建一個(gè)工程的時(shí)候瑞妇,系統(tǒng)會(huì)幫我們自動(dòng)新建一個(gè)以工程名為名字的pch (precompile h...
    寒橋閱讀 294評(píng)論 0 3
  • 『導(dǎo)言』 prefix.pch究竟是什么辕狰?我們可以把它稱之為“precompiled header”改备,從字面上翻譯...
    隨心吧閱讀 5,119評(píng)論 1 6