iOS開(kāi)發(fā)中有時(shí)候不可避免的會(huì)使用到OC和Swift的混編库北,這時(shí)候就需要建立橋接文件連接不同語(yǔ)言的類(lèi)庫(kù)
最近項(xiàng)目中需要用到圖表功能敷矫,網(wǎng)上發(fā)現(xiàn)一款強(qiáng)大的圖表第三方庫(kù)Charts肉微,但是是用Swift寫(xiě)的辽慕,如果自己的項(xiàng)目是OC寫(xiě)的導(dǎo)入Swift項(xiàng)目就需要用到橋接文件了,記錄下嵌入過(guò)程的一些坑
首先GitHub下載SDK后導(dǎo)入項(xiàng)目
接下來(lái)將Charts導(dǎo)入項(xiàng)目中鲸郊,右鍵-show in Finder丰榴,打開(kāi)自己項(xiàng)目的目錄
將Chart文件復(fù)制到項(xiàng)目目錄下(與.xcodeproj同級(jí))
將charts項(xiàng)目添加到自己的項(xiàng)目中
接下來(lái)導(dǎo)入庫(kù) Target-General - Embedded Binaries
項(xiàng)目導(dǎo)入了,由于自己的項(xiàng)目是OC秆撮,Charts是Swift四濒,想調(diào)用Charts的API,必須通過(guò)橋接橋接职辨,創(chuàng)建橋接文件這里有兩種方式:
一盗蟆、系統(tǒng)默認(rèn)方式創(chuàng)建
每個(gè)項(xiàng)目第一次創(chuàng)建不同語(yǔ)言的文件,Xcode會(huì)自動(dòng)提示是否新建橋接文件∈婵悖現(xiàn)在新建一個(gè)Swift文件喳资,名字可以任意起,反正是用不到的腾供,我們只是要用生成的橋接文件
文件建好之后會(huì)提示是否新建橋接文件
選擇Create Bridging Header仆邓,此時(shí)你會(huì)發(fā)現(xiàn)項(xiàng)目會(huì)出現(xiàn)一個(gè) 項(xiàng)目名-Bridging-Header.h的文件,這個(gè)就是橋接文件了伴鳖,自己在橋接文件中引用 Charts
使用之前的Charts版本還需要在BuildSetting里做一些設(shè)置节值,但是現(xiàn)在我升級(jí)了Xcode8發(fā)現(xiàn)完成上面的操作就可以了,不需要再做任何設(shè)置榜聂,在ViewController里引入文件試試
注意上圖中1那個(gè)文件搞疗,項(xiàng)目中你是看不到的,這個(gè)文件是生成橋接頭文件自動(dòng)生成的峻汉,名字是 項(xiàng)目名-Swift.h(不要自己去手動(dòng)創(chuàng)建) ?兩個(gè)文件同時(shí)引用后贴汪,build一下,應(yīng)該是沒(méi)問(wèn)題的休吠,導(dǎo)入成功扳埂!
二、自己創(chuàng)建橋接頭文件
上面的方式是項(xiàng)目第一次創(chuàng)建Swift文件時(shí)才會(huì)提示我們是否創(chuàng)建橋接頭文件瘤礁,但是如果一不小心點(diǎn)錯(cuò)了取消或者不創(chuàng)建阳懂,豈不是悲劇了(>﹏<) ,而且如果你的項(xiàng)目文件是中文的柜思,在你import上面兩個(gè)文件的時(shí)候會(huì)感覺(jué)到很怪異岩调,而且后面你會(huì)發(fā)現(xiàn)經(jīng)常報(bào)錯(cuò),顯示找不到橋接頭文件赡盘,所以當(dāng)出現(xiàn)這些情況下号枕,就需要我們自己創(chuàng)建,command+N 創(chuàng)建一個(gè)普通的頭文件陨享,
創(chuàng)建完成后葱淳,引入Swift庫(kù)文件
接下來(lái)把系統(tǒng)創(chuàng)建的橋接頭文件用我們自己創(chuàng)建的文件替換掉
同樣我們也可以修改自動(dòng)生成的空間文件钝腺,就是上面我們導(dǎo)入時(shí)表示1那個(gè)文件
至此兩個(gè)文件都進(jìn)行自定義修改,回到剛才我們引用兩個(gè)文件的控制器赞厕,修改文件引用
此處會(huì)有一個(gè)報(bào)錯(cuò)艳狐,顯示文件找不到,沒(méi)關(guān)系皿桑,clean-build毫目,然后你會(huì)驚奇的發(fā)現(xiàn)Build Succeed,一切都是那么美好诲侮!O(∩_∩)O