iOS OC與Swift混編之橋接文件

iOS開發(fā)中有時候不可避免的會使用到OC和Swift的混編,這時候就需要建立橋接文件連接不同語言的類庫


最近項目中需要用到圖表功能,網(wǎng)上發(fā)現(xiàn)一款強大的圖表第三方庫Charts,但是是用Swift寫的,如果自己的項目是OC寫的導入Swift項目就需要用到橋接文件了,記錄下嵌入過程的一些坑

首先GitHub下載SDK后導入項目

最新SDK的文件目錄

接下來將Charts導入項目中,右鍵-show in Finder,打開自己項目的目錄

打開項目目錄

將Chart文件復制到項目目錄下(與.xcodeproj同級)

復制文件

將charts項目添加到自己的項目中

將Charts導入到工程

接下來導入庫 Target-General - Embedded Binaries

嵌入二進制文件


項目導入了,由于自己的項目是OC,Charts是Swift,想調(diào)用Charts的API,必須通過橋接橋接,創(chuàng)建橋接文件這里有兩種方式:

一、系統(tǒng)默認方式創(chuàng)建

每個項目第一次創(chuàng)建不同語言的文件,Xcode會自動提示是否新建橋接文件?,F(xiàn)在新建一個Swift文件,名字可以任意起,反正是用不到的,我們只是要用生成的橋接文件

新建一個Swift文件

文件建好之后會提示是否新建橋接文件

選擇Create Bridging Header,此時你會發(fā)現(xiàn)項目會出現(xiàn)一個 項目名-Bridging-Header.h的文件,這個就是橋接文件了,自己在橋接文件中引用 Charts

在橋接文件中對Charts引用

使用之前的Charts版本還需要在BuildSetting里做一些設(shè)置,但是現(xiàn)在我升級了Xcode8發(fā)現(xiàn)完成上面的操作就可以了,不需要再做任何設(shè)置,在ViewController里引入文件試試

引用頭文件

注意上圖中1那個文件,項目中你是看不到的,這個文件是生成橋接頭文件自動生成的,名字是 項目名-Swift.h(不要自己去手動創(chuàng)建) ?兩個文件同時引用后,build一下,應該是沒問題的,導入成功!

二、自己創(chuàng)建橋接頭文件

上面的方式是項目第一次創(chuàng)建Swift文件時才會提示我們是否創(chuàng)建橋接頭文件,但是如果一不小心點錯了取消或者不創(chuàng)建,豈不是悲劇了(>﹏<) ,而且如果你的項目文件是中文的,在你import上面兩個文件的時候會感覺到很怪異,而且后面你會發(fā)現(xiàn)經(jīng)常報錯,顯示找不到橋接頭文件,所以當出現(xiàn)這些情況下,就需要我們自己創(chuàng)建,command+N 創(chuàng)建一個普通的頭文件,

創(chuàng)建完成后,引入Swift庫文件

接下來把系統(tǒng)創(chuàng)建的橋接頭文件用我們自己創(chuàng)建的文件替換掉

修改橋接頭文件

同樣我們也可以修改自動生成的空間文件,就是上面我們導入時表示1那個文件

修改空間文件名

至此兩個文件都進行自定義修改,回到剛才我們引用兩個文件的控制器,修改文件引用

此處會有一個報錯,顯示文件找不到,沒關(guān)系,clean-build,然后你會驚奇的發(fā)現(xiàn)Build Succeed,一切都是那么美好!O(∩_∩)O

效果圖
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,052評論 4 61
  • “子路問強。子曰:南方之強與,北方之強與,抑而強與?寞柔以教,不報無道,南方之強也。君子居之。 故...
    錢江潮369閱讀 475評論 0 3
  • 她碰到他的時候才15歲,剛中考完。他16,也剛中考完。 她那天去書店本來是去買本子的,但路過賣筆的架子的時候,看見...
    王二狗家不見光閱讀 915評論 0 1
  • 手機攝 圖片版權(quán)歸本人所有,圖片授權(quán)于簡書用于設(shè)置為app開屏圖,一切版權(quán)糾紛與簡書無關(guān)。
    香蔥不香的閱讀 524評論 6 3
  • 記得年少的我們張口閉口都是愛情 年紀的逐年增長使我對一些青春類的散文毫無興趣可言 甚至嗤之以鼻 我覺得它們都是矯揉...
    不戚閱讀 293評論 0 1

友情鏈接更多精彩內(nèi)容