引
在開發(fā)過程中盯另,我們經常會在很多地方調用相同的內容姊途。比如說我們設置控件位置時獲取屏幕的寬高來適配豁状,又比如說我們自己定義的一個轉換顏色的消防法,還有各種頭文件鸳君。這些常常使用到的內容农渊,如果要在每一次要使用的時候都重復調用一次頭文件或者聲明一個方法,無疑是很低效的或颊,而且也會很煩= =砸紊,而PCH文件就是解決這個問題的。
對于我們在大量文件中都要使用的方法或者頭文件囱挑,我們可以統(tǒng)一寫在PCH文件中醉顽,這樣就可以一次聲明,隨時調用平挑∮翁恚可以極大地提高編程效率和幸福感。
在Xcode 6之前通熄,創(chuàng)建工程的時候會自動生成一個PCH文件唆涝,我們直接在里面寫內容就可以了。但是在Xcode 6以及之后的版本中棠隐,蘋果取消了這一自動生成的過程石抡。StackOverFlow上討論出來的原因是使用PCH文件預編譯的話,在Build的時候由于要導入所有PCH文件的內容助泽,會大大增加Build的時間啰扛,因此蘋果希望還是將這些內容在各個文件手動導入。但是我還是覺得太麻煩了還是犧牲一下Build時間吧哈哈嗡贺。
創(chuàng)建PCH文件
創(chuàng)建PCH文件很簡單隐解,command+N,選擇iOS下的Other-->PCH File诫睬,創(chuàng)建PCH文件煞茫,命名就命名為"工程名-Prefix"后綴“.pch”會自動生成的。
現在就可以在這個pch文件里添加內容了摄凡,比如添加獲取屏幕寬高的方法來便于全局調用:
//設備的寬高
#define SCREENWIDTH [UIScreen mainScreen].bounds.size.width
#define SCREENHEIGHT [UIScreen mainScreen].bounds.size.height
但是現在在其他文件里還是不能調用的续徽,我們還需要作出一些設置:
點擊左邊列表的工程名-->TARGETS-->Build Settings-->Apple LLVM 6.1 - Language,在Prefix Header這一欄輸入:$(SRCROOT)/項目名稱/pch文件名”(例如:$(SRCROOT)/AddPCHDemo/AddPCHDemo-Prefix.pch):
這里標出了兩行亲澡,下面的Prefix Header用于填寫剛才的目錄名钦扭,上面的Precompile Prefix Header選擇Yes,表示預編譯后緩存pch文件床绪,這樣可以提高編譯速度客情。
現在其弊,在ViewController里就可以直接調用剛才寫的獲取寬高的方法啦。
可以在GitHub獲取我的demo工程:https://github.com/Cloudox/AddPCHDemo