iOS开发中有时候不可避免的会使用到OC和Swift的混编,这时候就需要建立桥接文件连接不同语言的类库
最近项目中需要用到图表功能,网上发现一款强大的图表第三方库Charts,但是是用Swift写的,如果自己的项目是OC写的导入Swift项目就需要用到桥接文件了,记录下嵌入过程的一些坑
首先GitHub下载SDK后导入项目
接下来将Charts导入项目中,右键-show in Finder,打开自己项目的目录
将Chart文件复制到项目目录下(与.xcodeproj同级)
将charts项目添加到自己的项目中
接下来导入库 Target-General - Embedded Binaries
项目导入了,由于自己的项目是OC,Charts是Swift,想调用Charts的API,必须通过桥接桥接,创建桥接文件这里有两种方式:
一、系统默认方式创建
每个项目第一次创建不同语言的文件,Xcode会自动提示是否新建桥接文件。现在新建一个Swift文件,名字可以任意起,反正是用不到的,我们只是要用生成的桥接文件
文件建好之后会提示是否新建桥接文件
选择Create Bridging Header,此时你会发现项目会出现一个 项目名-Bridging-Header.h的文件,这个就是桥接文件了,自己在桥接文件中引用 Charts
使用之前的Charts版本还需要在BuildSetting里做一些设置,但是现在我升级了Xcode8发现完成上面的操作就可以了,不需要再做任何设置,在ViewController里引入文件试试
注意上图中1那个文件,项目中你是看不到的,这个文件是生成桥接头文件自动生成的,名字是 项目名-Swift.h(不要自己去手动创建) 两个文件同时引用后,build一下,应该是没问题的,导入成功!
二、自己创建桥接头文件
上面的方式是项目第一次创建Swift文件时才会提示我们是否创建桥接头文件,但是如果一不小心点错了取消或者不创建,岂不是悲剧了(>﹏<) ,而且如果你的项目文件是中文的,在你import上面两个文件的时候会感觉到很怪异,而且后面你会发现经常报错,显示找不到桥接头文件,所以当出现这些情况下,就需要我们自己创建,command+N 创建一个普通的头文件,
创建完成后,引入Swift库文件
接下来把系统创建的桥接头文件用我们自己创建的文件替换掉
同样我们也可以修改自动生成的空间文件,就是上面我们导入时表示1那个文件
至此两个文件都进行自定义修改,回到刚才我们引用两个文件的控制器,修改文件引用
此处会有一个报错,显示文件找不到,没关系,clean-build,然后你会惊奇的发现Build Succeed,一切都是那么美好!O(∩_∩)O