前言
随着Swift发展, 很多新的项目开始使用Swift作为首选语言。 Swift语言以其简洁、快速、安全的特点获得了一大波粉丝,我也是其中之一。
项目背景:公司一些旧项目大都使用OC编写, 运营中的项目也会时常维护。所以在新需求开发时,我也会尝试使用Swift语言来编写(使用OC还是Swift根据项目需要来),这就涉及到OC与Swift语言的混编。 大部分的情况是OC代码调用部分Swift编写的模块。 而在混编的过程也遇到了一些问题,本文就将这些问题一一整理出来。
注意事项
1.oc调用swift的类
- swift类必须是继承
NSObjec
或者派生自NSObjec
的子类 - Class前面要加
@objcMembers
注解, 这样该类所有属性和方法在编译时会自动加上@objc
。需要知道的一点是 只有被@objc
修饰的属性或方法才被OC类调用到,所以使用@objcMembers
避免了我们为每个属性或方法加@objc
修饰的重复工作,举例如下:
@objcMembers class MyClass: NSObject {}