1. Swift 代碼中引用 Swift 文件
? ?1.1 引用自己工程中的 Swift? 文件
? ?1.2 引用通過 Cocoapods 導(dǎo)入第三方 Swift 框架中文件
2. Swift 代碼中引用 OC 文件
? ? 2.1 引用自己工程中的 OC 文件
? ? 2.2 引用通過 Cocoapods 導(dǎo)入第三方 OC 框架中文件
首先創(chuàng)建 Swift 項(xiàng)目:?
在填寫工程名的窗口中將 Language 切換為 Swift
1.1 引用自己工程中的 Swift? 文件
swift 工程中肴楷,使用自己創(chuàng)建的 Swift 類文件是不需要導(dǎo)入頭文件的,可以使用。這是因?yàn)?Xcode 強(qiáng)大的功能默認(rèn)幫我們進(jìn)行了處理贱纠,不要我們?cè)谧?import 操作亭罪,相反如果使用 import 導(dǎo)入自己創(chuàng)建的 Swift 類文件則會(huì)出現(xiàn)報(bào)錯(cuò)实昨。
demo 中創(chuàng)建一個(gè)繼承自 UIViewController 類 的 CustomViewController 類:
如果導(dǎo)入則會(huì)出現(xiàn)
直接使用是沒有問題的
1.2 引用通過 Cocoapods 導(dǎo)入第三方 Swift 框架中文件
使用?Cocoapods 工具導(dǎo)入的第三方?Swift 框架 侨把,使用的時(shí)候則需要 導(dǎo)入相應(yīng)的頭文件?
demo 中使用 Cocoapods 導(dǎo)入了 Alamofire 和 SwiftyJson 兩個(gè)第三庫(kù)饥漫,倘若要使用第三方庫(kù)中的類和方法榨呆,則需要到入相應(yīng)的頭文件:創(chuàng)建了一個(gè)繼承自 NSObject 的?NetworkRequest 類,在 NetworkRequest? 類中需要使用以上兩個(gè)第三方庫(kù)庸队,所以要導(dǎo)入頭文件:
import? Alamofire
?import? SwiftyJSON
2.1 引用自己工程中的 OC 文件
在 Swift 項(xiàng)目中使用 OC 文件則要建立和 OC 的橋接頭文件积蜻,一般使用 OC 創(chuàng)建文件,或是拉入一個(gè) OC 類彻消,都會(huì)提示創(chuàng)建創(chuàng)建橋接文件竿拆,如圖:
Xcode 在創(chuàng)建 OC 類的同時(shí)會(huì)自動(dòng)生成一個(gè)橋接頭文件??SwiftProject-Bridging-Header.h ,交接文件在工程中的鏈接也是 Xcode 幫我們自動(dòng)設(shè)置好的证膨。此時(shí)需要做的就是在 橋接頭文件中導(dǎo)入 OC 類的頭文件: #import? "OCViewController.h"如输。這樣在 Swift 文件中就可以使用 OC 類:?
let ocVC = OCViewController.init(nibName:"OCViewController", bundle:nil)
2.2 引用通過 Cocoapods 導(dǎo)入第三方 OC 框架中文件
使用?Cocoapods 工具導(dǎo)入第三方 OC 框架,此時(shí) Xcode 不會(huì)幫我們創(chuàng)建橋接頭文件央勒,?
A.? ?如果工程中已有 OC 的橋接頭文件不见,則在頭文件中導(dǎo)入第三方框架類的頭文件即可使用, 但是需要增加一步設(shè)置:
B.? ?如果沒有則需要我們手動(dòng)創(chuàng)建橋接頭文件
a.
b.? 然后參考上面 圖片名字為 #《 Cocoapos導(dǎo)入OC類Xcode設(shè)置》設(shè)置Xcode?
c.? 添加文件到工程中的鏈接
d. 最后一步不要忘記在創(chuàng)建好的橋接頭文件中導(dǎo)入相應(yīng)的 OC 頭文件
#import"OCViewController.h"
#ifndef SwiftProject_Bridging_Header_h
#define SwiftProject_Bridging_Header_h
#import"MBProgressHUD.h"
#endif/* SwiftProject_Bridging_Header_h */
這樣就可以了。
注:如果手動(dòng)導(dǎo)入第三方框架崔步,若是所有的源文件可見稳吮,和自己創(chuàng)建的 OC 類沒有區(qū)別
?若是有 framework ,或是直接把第三方的 Target 拉入項(xiàng)目的話井濒,個(gè)人沒有嘗試過灶似,猜測(cè)和使用 Cocoapods 導(dǎo)入要要做的應(yīng)該一致。
希望對(duì)大家有幫助瑞你,如有錯(cuò)誤歡迎指正酪惭,留言,謝謝者甲。最后附上?Demo