一、設置橋接文件
不管是objective-c調用swift,還是swift調用objective-c,都需要創建橋接文件,通過橋接文件實現兩者的相互調用。
當我們引入oc或者swift進入另一個語言的項目的時候系統會提示是否自動創建橋接文件,此時可直接創建。
但除此之外我們也可以選擇手動創建。此時需要我們在新建文件裏選擇Header File,點擊確認創建橋接文件,橋接文件名字一般為:ProjectName-Bridging-Header.h。然後在Build settings裏搜索bridging,找到Objective-C Bridging Header的選項,將該文件的路徑填寫進去,或者直接拉入。這裏的路徑最好選擇相對路徑的形式(ProjectName/BridgingFileName.h)。
ProjectName為你項目的項目名,BridgingFileName為橋接文件的名字。
二、橋接方法
oc項目調用swift文件
oc項目針對swift文件會自動創建ProjectName-Swift.h文件,該文件不需要我們去做更改,所以當我們設置完橋接文件之後,只需要在要調用的文件處import該頭文件即可,即:import <ProjectName-Swift.h>,其中ProjectName為該項目的工程名。引入該頭文件後,即可調用Swift對應的類和方法。
注意點:引入的swift文件需要調用的類和方法需要進行修飾,然後oc項目才能調用。可使用@objcMembers直接修飾類,或者也可以使用@objc分別修飾想要調用給oc的方法和屬性,然後oc項目就可調用swift的相關方法了。
swift項目調用oc文件
swift項目調用oc文件更為簡單,只需要將oc類的頭文件導入橋接文件即可,需要調用哪個oc文件就import哪個頭文件(#import "ClassName.h")進去。
swift項目調用oc的類和方法不需要引入頭文件,所以設置完之後可以直接在swift中直接調用oc方法。
注意點:需要被調用的oc文件的方法需要寫在.h文件裏進行方法聲明(廢話)。