Contents
  1. 1. OC项目中加入Swift混编
    1. 1.1. Project_defines module 配置
    2. 1.2. Project_product module name 配置
    3. 1.3. 代码修改
      1. 1.3.1. 在需要调用到 Swift 的地方 import
        1. 1.3.1.1. 注意点
      2. 1.3.2. 需要暴露给 Swift 调用的
        1. 1.3.2.1. 注意点
    4. 1.4. Apple官方混编指南
    5. 1.5. 国内汉化

OC项目中加入Swift混编

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

Project_defines module 配置

Project_product module name 配置

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

代码修改

在需要调用到 Swift 的地方 import

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

注意点

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

需要暴露给 Swift 调用的

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

注意点

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

Apple官方混编指南

https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-ID122

国内汉化

https://github.com/CocoaChina-editors/Welcome-to-Swift/blob/master/UsingSwiftwithCocoaandObjective-C中文手册.md

Contents
  1. 1. OC项目中加入Swift混编
    1. 1.1. Project_defines module 配置
    2. 1.2. Project_product module name 配置
    3. 1.3. 代码修改
      1. 1.3.1. 在需要调用到 Swift 的地方 import
        1. 1.3.1.1. 注意点
      2. 1.3.2. 需要暴露给 Swift 调用的
        1. 1.3.2.1. 注意点
    4. 1.4. Apple官方混编指南
    5. 1.5. 国内汉化