OC、Swift、Flutter混编

547 阅读2分钟

Swift项目引入OC代码

划重点:

  1. 首次系统自动创建
  2. 桥接文件为:xxx-Bridging-Header.h,xxx 为工程名
  3. 需在桥接文件内编写代码:引入OC的头文件,进行声明
  4. 在Swift代码了,采用Swift的方式进行使用

image.png

OC项目引入Swift代码

划重点:

  1. 首次系统自动创建
  2. 桥接文件为:xxx-Bridging-Header.h, xxx 为工程名
  3. 无需在桥接文件里编码,系统自动处理
  4. 在OC中调用需要在使用的OC文件里或全局声明头文件 #import "xxx-Swift.h" //xxx 是工程名

image.png

iOS项目引入Flutter代码(iOS 工程为主)

划重点:

  1. 产物引入
  2. 源码引入

Flutter项目引入iOS代码(Flutter 工程为主)

划重点: 1、

拓展阅读1、 OC与Swift混编之桥接文件

www.jianshu.com/p/7711a1ecc…

这篇文章主要介绍了在使用Swift和Objective-C混编时,如何创建和处理桥接文件。文章分为三个部分,分别针对不同的项目类型(Swift项目、OC项目和SDK项目)进行说明,并提供了图文并茂的步骤说明。

亮点一:介绍了当Xcode提示创建Swift-OC桥接文件时,如果误点了取消,该如何手动创建桥接文件并设置路径。

亮点二:讨论了在SDK开发中,OC与Swift混编时桥接文件的建立技巧。

具体内容包括:

  1. Swift项目混编OC:

    • 创建Swift-OC桥接文件,允许Swift类中调用OC类和方法。
    • 如果在创建时误点取消,可以手动新建一个头文件,并在项目的Build Settings中设置Objective-C Bridging Header路径。
  2. OC-Swift桥接文件:

    • OC类中调用Swift类和方法,无需创建特定的桥接文件,而是通过在OC类中导入由Xcode自动生成的命名为"项目名-Swift.h"的头文件。
  3. OC项目混编Swift:

    • 类似于Swift项目混编OC,当第一次创建Swift类时,会提示创建OC-Swift桥接文件。
    • 如果取消了提示,可以手动设置Objective-C Generated Interface Header Name为"$(SWIFT_MODULE_NAME)-Swift.h"。
  4. SDK项目下的混编:

    • 在framework项目中,OC调用Swift方法时,需要在OC类中导入桥接文件,格式为"#import "工程名/工程名-Swift.h"。
    • 文章提到framework项目不支持设置Swift-OC桥接文件路径,如果尝试设置会出现编译错误。

文章最后提到作者并未深入研究SDK项目下创建桥接文件遇到的问题,鼓励有兴趣的读者自行探索。