swift 与 oc 文件相互调用

作者: 琉璃艺术 | 来源:发表于2017-09-27 11:02 被阅读92次

由于公司需要,今天开始学习swift,打算先创建个工程,做基本代码测试,结果刚开始的文件相互调用就遇到了问题,在这里把自己调试的过程记录下

初学者的我,任何简单的一步,都是学习的过程

1:创建swift文件

创建文件时会自动提示创建桥接文件SwiftTestProject-Bridging-Header.h,这个文件是swift调用oc时用到的


create swift file.png
2:工程配置

找到工程文件下的TARGETS-Build settings 中搜索 Defines Module 设置为YES


Build settings.png

同样找到工程文件下的TARGETS-Build settings 中搜索Product mo 设置为工程名,这时工程会自动创建一个项目名-Swift.h的文件,该项目中为“SwiftTestProject-Swift.h”,这个文件用于oc调用swift文件


Build settings_1.png
3:oc调用swift文件

引入以项目名-Swift.h文件,注意这个文件没有提示,要手动打出来,该项目中为#import "SwiftTestProject-Swift.h"


oc call swift.png
4:swift调用oc文件

在之前创建的桥接文件中引入oc 的.h文件,该项目中为SwiftTestProject-Bridging-Header.h文件


swift call oc.png swift call oc_1.png

注意和总结

1、在创建swift文件时,根据系统提示的创建桥接文件,如果未提示或当时未创建也可自定义桥接文件,下面有提到
2、要在targets-build settings中设置Defines Module为YES
3、在oc调用swift类时,swift类中要先去继承一下oc的类文件,否则调用swift类时会报错
4、swift文件有的时候写的是对的,也会报错,但是不一定真的是有错误,所以记得command+B 编译下
5、oc引用swift文件要引用“项目名-Swift.h”文件(我是没有提示,应该都这样吧),swift引用oc文件要创建桥接文件,桥接文件中引用oc的.h文件

创建桥接文件

如果系统提示时未创建桥接文件或未提示,可以根据下面步骤创建桥接文件
创建一个Header File文件,一般命名为“项目名-Bridging-header”,内容清空,找到Build Settings搜索Objective-c Bridging header,将刚刚创建的桥接文件的路径添加到Objective-c Bridging header中,编译运行即可


create Bridging Header.png

相关文章

  • OC与Swift混编

    OC与Swift混编 一.objectivec与Swift相互调用对照 OC interface文件如下 转换后对...

  • Swift类与OC类相互调用

    这里将使用Xcode 8.0演示Swift与OC类的相互调用 - Swift项目中调用OC类 1.首先在Swift...

  • OC 和Swift 互相调用

    一、OC调用swift文件 二、swift调用OC文件 三、注意和总结 添加: 四、自定义桥接文件 一、OC调用s...

  • OC工程中OC文件和Swift文件相互引用

    1、主工程是OC创建,工程中OC文件调用Swift 文件及项目中Swift调用OC文件1.1 创建OC项目 1....

  • swift 与oc混编 ,找不到“Project Name-Sw

    当我们在用swift 与 oc 混编的工程中,oc文件调用swift 定义的类时,在oc的.h 文件中导入头文件 ...

  • swift 与 oc 文件相互调用

    由于公司需要,今天开始学习swift,打算先创建个工程,做基本代码测试,结果刚开始的文件相互调用就遇到了问题,在这...

  • Swift与OC混编

    标签:Swift 在Swift中调用OC 首先创建OC/Swift工程 然后创建swift/OC文件,Xcode会...

  • Swift与OC、C++混编

    Swift与OC混编 Swift工程中调用OC代码 不需要在Swift中import OC的类,统一在桥接文件中导...

  • ios 基础知识整理(一)

    一、Swift 和OC 如何相互调用? 1.Swift 调用 OC代码 需要创建一个 Target-BriBrid...

  • OC 和 swift 互调

    swift中调用OC 如果想要在swift中调用OC,那么需要一个桥接文件(OC Bridging Header)...

网友评论

本文标题:swift 与 oc 文件相互调用

本文链接:https://www.haomeiwen.com/subject/ihxeextx.html