image.png

一、swift调用OC

1. 建立桥接文件

image.png
引入OC头文件
image.png

2. objectiveC文件

image.png

3. swift调用oc类

image.png

4. 利用_silgen_name 改名或调用隐藏C的函数

先设定C函数

image.png

全局声明,更换函数名字

image.png

使用:

print(swift_sum(20, 5))

二、OC调用swift

1. 引入头文件

image.png

2. 配置swift的一个类,用来被调用(核心:@objcMembers 或 @objc 去公开)

image.png

3. 调用

image.png

4. 注意

  • swift 暴露给OC的类最终必须要继承 NSObject
  • 使用 @object 修饰需要暴露给OC的成员
  • 使用@objectMembers 修饰类
    • 默认所有成员 ,包括扩展中定义的成员
    • 最终是否成功,还要看成员自身的访问级别