OC项目集成Swift

在公司项目中遇到一个需求,集成一个第三方的framework,这是一个用Swift写的,而且没有考虑过OC项目集成。所以没有办法直接用桥接的方式调用framework里的API。这里记录一下子的的解决方法和一些坑。

1. 集成framework

framework拖进项目中,按下图设置。

OC项目集成Swift_第1张图片
1.png

OC项目集成Swift_第2张图片
1.png

2. 创建桥接文件

2.1 新建一个继承NSObject的类

OC项目集成Swift_第3张图片
3.png

2.2 xcode会提示你创建桥接文件。

OC项目集成Swift_第4张图片
4.png

OC项目集成Swift_第5张图片
5.png

2.3 一般来说你已经可以在OC中调用Swift的类了。

OC项目集成Swift_第6张图片
6.png

#import 可能Xcode可能会报错,可以直接运行,如果还是报错,看一下这个地方是否设置了

OC项目集成Swift_第7张图片
7.png

如果没有值,填入合适的名称就可以了。

3. 集成遇到的坑

  • framework没有做OC的兼容,所以需要用到的地方全部用Swift实现,然后调用自己写的Swift类。
  • 不知道什么原因,编译的时候Swift的蓝牙的协议报错,所以用OC类封装了OC的蓝牙功能,然后在Swift里面调用OC类。

你可能感兴趣的:(OC项目集成Swift)