引言
在OC的開發(fā)中,Pch (Prefix-Compiled Header) 是一個標準的預(yù)編譯頭文件。在Pch 中定義的內(nèi)容(宏、方法、函數(shù)等)我們都可以在工程中直接引用。但是,在Xcode6的時候,蘋果移除工程自動創(chuàng)建Pch文件。因此,我們相使用 Pch文件的話需要我們手動創(chuàng)建和添加。
Swift 中的 'Pch'
在Swift 中的 'Pch'是由 Swift File 選項創(chuàng)建的文件,該文件的后綴是 .swift 。該文件創(chuàng)建后不需要任何配置就可以使用定義的常量和函數(shù)等。但是 Swift 中也可以添加 Pch文件,不過的是改 Pch 是OC范圍的,如果要使用其定義的宏和函數(shù),那必須使用 Swift 調(diào)用OC的橋接。
Swift 中的 Swift File 文件的創(chuàng)建和使用
說明:Swift File 創(chuàng)建的文件是以 .swift 后綴結(jié)尾的,不需要任何配置,就可以使用其中的常量和函數(shù)等。
1> 第一步:創(chuàng)建工程并點擊一個控制器,然后鼠標左鍵選擇[New File...] 選項,如下圖所示:

2> 按照第一步進行會進入下面模塊的選擇,然后選擇 [Swift File] 模塊。如下圖所示:

3> 經(jīng)過第二步,我們點擊 Next 后,進入文件命名的界面,然后給文件命名為 SwiftHeader ,如下圖所示:

4> 經(jīng)過第三步,然后我們點擊 Create 后,在工程中得到我們創(chuàng)建的Swift File文件 SwiftHeader.swift。如下圖所示:

5> 我們在創(chuàng)建的 SwiftHeader.swift文件中創(chuàng)建常量和函數(shù)如下圖所示:

6> 我們對我們創(chuàng)建SwiftHeader.swift中的常量和函數(shù)的測驗,如下圖所示:

7>對Swift 項目使用 Swift File文件的總結(jié)
經(jīng)過第六步的測試,我們可以在工程的全局調(diào)用SwiftHeader.swift中的常量、函數(shù)、回調(diào)等。
Swift 中的Pch文件的創(chuàng)建和使用
1、在工程中選擇一個控制器,然后鼠標左鍵選擇 New File...選項,然后進入模塊選擇區(qū),我們將區(qū)域滾動到 other區(qū)域,我們就可以看到一個 PCH File的紅色文件,如下圖所示:

2、經(jīng)過第一步,我們點擊 Next,進入下一步,給文件的命名,我們命名為PrefixHeader ,如圖下圖所示:

3、我們點擊 Create 后,在工程里面我們就可以看到我們創(chuàng)建的 PrefixHeader.pch文件。如下圖所示:

4、我們在創(chuàng)建的 PrefixHeader.pch中定義宏和函數(shù)等,如下圖所示:

注意:到該步驟,我們文件也創(chuàng)建了,函數(shù)和宏也定義了,我們現(xiàn)在是否可以使用它們了呢?答案是:不可以?。?!因為,PrefixHeader.pch是OC類型的文件,如果要在Swift 工程中使用,就不必須使用文件的橋接文件。接下來我們就創(chuàng)建這個橋接文件。
6、創(chuàng)建Swift 調(diào)用OC 文件的橋接文件 Swift_Pch-Bridging-Header.h,在工程中點擊鼠標左鍵,選擇New File... 選項,進入模塊選區(qū)。在Source區(qū)域中選擇Cocoa Touch Class 選項,進入配置界面,在配置界面的 Language中選擇 Objective-C 和你創(chuàng)建的文件的父類和名字,然后,Xcode就會彈出一個 Would you like to configure an Objective-c bridging header?標題的彈框。如下圖所示:

7、我們在第六步中選擇 Create Bridging Header 按鈕,創(chuàng)建一個 Swift_Pch-Bridging-Header.h的橋接文件,如下圖所示:

8、在Swift_Pch-Bridging-Header.h 引入 PrefixHeader.pch文件,如下圖所示:

9、在 Swift 的項目中測試使用 PrefixHeader.pch文件中定義的宏(數(shù)值、字符差),其中,函數(shù)不能使用,如下圖所示:

10、那我們?nèi)绾握{(diào)用在PCH中定義的函數(shù)呢?
經(jīng)過第九步的測試,我們目前只可以調(diào)用一些簡單的常量,函數(shù)不能夠調(diào)用。我們那如何使用PCH 中我們定義的函數(shù)紅呢?答案是:使用一個Objective-C的一個繼承與NSObject 的類。在該類中實現(xiàn)對用PCH 函數(shù)宏的方法名字,在該類中調(diào)用PCH中定義的宏。創(chuàng)建的繼承與NSObejct類的文件是ConfigManager.h 和ConfigManager.m,如下圖所示:
1、ConfigManager.h 圖

2、ConfigManager.m 圖

11 、我們再次在項目中測試,別忘了把 #import "ConfigManager.h" 加入到Swift 調(diào)用OC的過度橋中,測試結(jié)果如下:

12 、總結(jié)
經(jīng)過測試,我們終于可以調(diào)用Objective-C的PCH文件,這樣使用不足之處,就是使用一個 Object_OC的類進行,宏和方法的轉(zhuǎn)換,在用該類在Swift 中使用宏函數(shù)。所以,不建議使用第二種,建議第一種使用'PCH'的方法。