为什么需要使用OC和Swift混合编程?
在真实项目开发过程中,大部分时候我们往往都会使用到OC和Swift混合编程,主要原因如下:
- 老项目是OC语言实现的,但需要引用Swift的框架;
- 新项目是Swift实现的,但需要引用OC的框架,就目前微信SDK,支付宝SDK等都是OC实现的。
如何实现?
1、通过官方提供桥接文件这种机制实现。
2、手动创建桥接文件。
实现的效果
在OC语言的项目中,创建一个Swift类文件,里面有静态方法,实例方法,字段,然后在OC中调用;像Swift中枚举就无法再OC调用。
实现方法
- 创建Swift文件,类继承NSObject,方法和字段前面加@objc,如果不加OC中无法调用,但编译不报错。
- 创建桥接文件,第一次创建Swift文件时,会提示是否创建桥接文件,可以点击自动创建;也可以稍后手动创建,手动创建,还要开启在target-Build Settings-All中,找到Defines Module,设置为Yes;同样在Swift项目中第一次创建OC文件时也会提示。
- 在要使用Swift类的OC文件中导入自动生成的Swift兼容文件,和桥接文件。
- 在OC中使用Swift中的类。