swift 与 oc 文件相互调用

由于公司需要,今天开始学习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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言: Swift语言出来后,可能新的项目直接使用Swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好...
    疯狂的电脑阅读 2,338评论 0 9
  • 这里将使用Xcode 8.0演示Swift与OC类的相互调用 - Swift项目中调用OC类 1.首先在Swift...
    ShenYj阅读 779评论 0 2
  • swift强势来袭,想要紧跟脚步,但之前OC的工程推倒重来在时间和实践上都有点伤神,混编就是这个过渡的桥梁,使...
    _skye阅读 5,276评论 8 22
  • 谁也不知道事故下一秒是否会成为故事,故事或许转角也会成为事故。生物链,循环是我所认为世间的起承转合的一种常态,...
    时光不语静候花开阅读 76评论 0 0
  • 生存之上,理想之下 2016-02-22 满大人 一个满大人 昨天跟妈妈去医院看望发烧住院的姥爷,踏进医院的...
    M姓小仙女阅读 149评论 0 0