iOS OC与Swift混编之桥接文件

iOS开发中有时候不可避免的会使用到OC和Swift的混编,这时候就需要建立桥接文件连接不同语言的类库


最近项目中需要用到图表功能,网上发现一款强大的图表第三方库Charts,但是是用Swift写的,如果自己的项目是OC写的导入Swift项目就需要用到桥接文件了,记录下嵌入过程的一些坑

首先GitHub下载SDK后导入项目

iOS OC与Swift混编之桥接文件_第1张图片
最新SDK的文件目录

接下来将Charts导入项目中,右键-show in Finder,打开自己项目的目录

iOS OC与Swift混编之桥接文件_第2张图片
打开项目目录

将Chart文件复制到项目目录下(与.xcodeproj同级)

iOS OC与Swift混编之桥接文件_第3张图片
复制文件

将charts项目添加到自己的项目中

iOS OC与Swift混编之桥接文件_第4张图片
将Charts导入到工程

接下来导入库 Target-General - Embedded Binaries

iOS OC与Swift混编之桥接文件_第5张图片
嵌入二进制文件


项目导入了,由于自己的项目是OC,Charts是Swift,想调用Charts的API,必须通过桥接桥接,创建桥接文件这里有两种方式:

一、系统默认方式创建

每个项目第一次创建不同语言的文件,Xcode会自动提示是否新建桥接文件。现在新建一个Swift文件,名字可以任意起,反正是用不到的,我们只是要用生成的桥接文件

iOS OC与Swift混编之桥接文件_第6张图片
新建一个Swift文件

文件建好之后会提示是否新建桥接文件

iOS OC与Swift混编之桥接文件_第7张图片

选择Create Bridging Header,此时你会发现项目会出现一个 项目名-Bridging-Header.h的文件,这个就是桥接文件了,自己在桥接文件中引用 Charts

iOS OC与Swift混编之桥接文件_第8张图片
在桥接文件中对Charts引用

使用之前的Charts版本还需要在BuildSetting里做一些设置,但是现在我升级了Xcode8发现完成上面的操作就可以了,不需要再做任何设置,在ViewController里引入文件试试

iOS OC与Swift混编之桥接文件_第9张图片
引用头文件

注意上图中1那个文件,项目中你是看不到的,这个文件是生成桥接头文件自动生成的,名字是 项目名-Swift.h(不要自己去手动创建)  两个文件同时引用后,build一下,应该是没问题的,导入成功!

二、自己创建桥接头文件

上面的方式是项目第一次创建Swift文件时才会提示我们是否创建桥接头文件,但是如果一不小心点错了取消或者不创建,岂不是悲剧了(>﹏<) ,而且如果你的项目文件是中文的,在你import上面两个文件的时候会感觉到很怪异,而且后面你会发现经常报错,显示找不到桥接头文件,所以当出现这些情况下,就需要我们自己创建,command+N 创建一个普通的头文件,

iOS OC与Swift混编之桥接文件_第10张图片

创建完成后,引入Swift库文件

iOS OC与Swift混编之桥接文件_第11张图片

接下来把系统创建的桥接头文件用我们自己创建的文件替换掉

iOS OC与Swift混编之桥接文件_第12张图片
修改桥接头文件

同样我们也可以修改自动生成的空间文件,就是上面我们导入时表示1那个文件

iOS OC与Swift混编之桥接文件_第13张图片
修改空间文件名

至此两个文件都进行自定义修改,回到刚才我们引用两个文件的控制器,修改文件引用

iOS OC与Swift混编之桥接文件_第14张图片

此处会有一个报错,显示文件找不到,没关系,clean-build,然后你会惊奇的发现Build Succeed,一切都是那么美好!O(∩_∩)O

iOS OC与Swift混编之桥接文件_第15张图片
效果图

你可能感兴趣的:(iOS OC与Swift混编之桥接文件)