引
在開發(fā)過程中,我們經(jīng)常會在很多地方調(diào)用相同的內(nèi)容。比如說我們設(shè)置控件位置時獲取屏幕的寬高來適配,又比如說我們自己定義的一個轉(zhuǎn)換顏色的消防法,還有各種頭文件。這些常常使用到的內(nèi)容,如果要在每一次要使用的時候都重復(fù)調(diào)用一次頭文件或者聲明一個方法,無疑是很低效的,而且也會很煩= =,而PCH文件就是解決這個問題的。
對于我們在大量文件中都要使用的方法或者頭文件,我們可以統(tǒng)一寫在PCH文件中,這樣就可以一次聲明,隨時調(diào)用??梢詷O大地提高編程效率和幸福感。
在Xcode 6之前,創(chuàng)建工程的時候會自動生成一個PCH文件,我們直接在里面寫內(nèi)容就可以了。但是在Xcode 6以及之后的版本中,蘋果取消了這一自動生成的過程。StackOverFlow上討論出來的原因是使用PCH文件預(yù)編譯的話,在Build的時候由于要導(dǎo)入所有PCH文件的內(nèi)容,會大大增加Build的時間,因此蘋果希望還是將這些內(nèi)容在各個文件手動導(dǎo)入。但是我還是覺得太麻煩了還是犧牲一下Build時間吧哈哈。
創(chuàng)建PCH文件
創(chuàng)建PCH文件很簡單,command+N,選擇iOS下的Other-->PCH File,創(chuàng)建PCH文件,命名就命名為"工程名-Prefix"后綴“.pch”會自動生成的。
現(xiàn)在就可以在這個pch文件里添加內(nèi)容了,比如添加獲取屏幕寬高的方法來便于全局調(diào)用:
//設(shè)備的寬高
#define SCREENWIDTH [UIScreen mainScreen].bounds.size.width
#define SCREENHEIGHT [UIScreen mainScreen].bounds.size.height
但是現(xiàn)在在其他文件里還是不能調(diào)用的,我們還需要作出一些設(shè)置:
點擊左邊列表的工程名-->TARGETS-->Build Settings-->Apple LLVM 6.1 - Language,在Prefix Header這一欄輸入:$(SRCROOT)/項目名稱/pch文件名”(例如:$(SRCROOT)/AddPCHDemo/AddPCHDemo-Prefix.pch):
這里標(biāo)出了兩行,下面的Prefix Header用于填寫剛才的目錄名,上面的Precompile Prefix Header選擇Yes,表示預(yù)編譯后緩存pch文件,這樣可以提高編譯速度。
現(xiàn)在,在ViewController里就可以直接調(diào)用剛才寫的獲取寬高的方法啦。
可以在GitHub獲取我的demo工程:https://github.com/Cloudox/AddPCHDemo