Links
Comment on page

07.OC项目中加入Swift混编

年后项目准备引入 Swift 新的模块需求使用 Swift 编写 需要支持与 OCSwift 的混编 这里描述一下前期准备的工作

Project_defines module 配置

Project_product module name 配置

这里的 Product Module Name 需要和 工程名称 一致

代码修改

在需要调用到 Swift 的地方 import

#import "工程名称-Swift.h"

注意点

  • 这个文件 import 不会自动提示
  • 而且如果项目汇总没有 swift 文件的话编译也会报错
  • 不要自己去创建这个名字的文件
  • 只需要在项目中创建一个 Swift 文件这个文件就会自动生成

需要暴露给 Swift 调用的

OC 项目中创建 swift 文件后会创建一个桥接文件 工程名-Bridging-Header.h 所有需要暴露给 swift 调用的文件都在这里 import 即可

注意点

  • 需要注意的是: 如果 import.h 中有用到 全局导入的引用 时,编译会报错,这时需要在该被 import.h 文件中添加相关引用或者使用 @class 即可
  • 项目中的 Swift 文件中使用上面 import 过的 OC类 无须再单独 import
  • 如果在添加到桥接文件中后某些类型依旧报错 可以尝试将其在桥接文件中的位置提前

Apple官方混编指南

国内汉化