iOS - oc 与 Swift 混编 配置桥接文件 oc与Swift相互调用

本文讨论的问题:

  1. oc 工程调用 Swift 类;
  2. Swift 工程调用 oc 类;

以上两种情况,都需要用到桥接文件。


配置桥接文件(本文讨论手动配置桥接文件):

  1. 创建一个 .h 文件,自己起个名字,桥接文件通常包含 “bridge” 或者 “bridging” 关键字,自己起个名字即可。

  2. 如下图依次配置:工程 - BuildSettings - "bridg" - Objecttive-C Bridging Header - 双击输入:“工程名/桥接文件名”(如果不在根目录,那么要 “工程名/路径/桥接文件名”)。如图(1):

  3. 编译,提示 success。(如果没有编译成功,通常是配置的路径有错误,从报错信息中按照 工程名路径文件名 复制之后粘贴到小窗中)

  4. 准备调用(这一步分两种情况)

4.1 在 oc 中调用 Swift 类
------比如在oc的 viewController 中要调用 Person.swift 中一个 func run 的对象方法,要在主调的类 viewController 中导入头文件

import "工程名-Swift.h" !!!

还要记得设置2个地方(图片网络借用,谢谢作者!):


iOS - oc 与 Swift 混编 配置桥接文件 oc与Swift相互调用_第1张图片
image.png

然后就可以调用 Swift 类了,如下:
[[Person new] run];

4.2 在 Swift 中调用 oc 类 Person 的 - run 方法
------在 Swift 类 viewController 中调用 oc 的 Person 类的 - run 方法,需要在桥接文件中导入 oc 类的头文件

import "Person.h";

然后就可以在 Swift 的 viewController 中调用了,如下:
Person p = Person()
p.run()

至此,就 ok 了!

附:

图(1)(图1 为网络借用,多谢作者!)


iOS - oc 与 Swift 混编 配置桥接文件 oc与Swift相互调用_第2张图片
1400310-548ea0665102e447.png

你可能感兴趣的:(iOS - oc 与 Swift 混编 配置桥接文件 oc与Swift相互调用)