欢迎使用CSDN-markdown编辑器iOS oc和swift混编

swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言。Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题。Swift语言采用安全编程模式,且引入了多种新功能,使得编程工作更加简便,灵活!今天小编带大家带来oc和swift混编的知识点

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这是一个我的iOS交流群:687528266,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!
新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编。这个在iOS8中是允许的。

先中简单的入手,先研究在同一个工程目录下混合使用的情况。

为了演示。先准备两个类

第一种:在swift的类里面调用oc的类

这个需要一个桥接文件 ,(感觉类似于oc里面的头文件)

首先 新建一个工程 开发语言选择swift 10041938-dc67fe3fb7d4e74c.png

然后创建一个OC的类 10041938-9842a6ab51b83533.png

在创建的时候会提示出现创建一个桥接文件 10041938-86120035c903cc88.png

此时 Swift工程里面就多了个OC的类和一个桥接文件 10041938-ba45e7855e6a95dc.png

同样的,当你知道这个swift搜索头文件的关系后,就不需要再理会这个-Bridging-Header.h的文件了。完全可以手工建一个并取自己喜欢的名字。如: 10041938-680ead567c03528b.png

然后在桥接文件里面导入OC累的头文件名称 10041938-3763b868505add9b.png

这样 就可以在Swift的文件里面直接使用OC的类了,但是Swift得类里面的语法还是Swift 10041938-f05fb6f09baf1eb9.png

swift的类里面使用OC的类
自此 就实现了Swift的类调用OC的类了!

第二种OC类调用Swift

oc调用swift的设置方法如下:

1、确保将框架 target 的 Build Settings > Packaging > Defines Module 设置为 Yes

2、将 build setting 中的 Product Module Name 修改为工程名。

之后的项目会自动生成swift的头文件头文件名称为Product Module Name-Swift.h (Product Module Name为工程名)

  所有的swift都会在这个头文件里

接下来直接调用方法就可以了,不再需要引入相关头文件了

那么怎么在OC的类调用Swift的文件呢?

我们都知道 在OC里面 引用别的文件内容时 需要导入头文件,但是swift的类并没有头文件,那怎么办呢?其实,每个swift的类都有头文件 我们可以在这儿查看到.
 10041938-e092e4263b08491a.png

然后我们只需要在OC的类的.m文件里面导入 “工程名”加上 -swift.h (固定格式) 就可以在OC的类里面是有Swift的累了 而且还是使用OC语法! 10041938-0f28db2bd005d3c4.png

在OC的类引用Swift的类

写有不足的地方,可以联系晓雯的微信。请各位大佬多多指教!!!
(其实做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS学习交流群687528266,不管你是小白还是大牛欢迎入驻,大家一起交流学习,加群私聊群主就可以领取2018最全梳理的面试宝典和资料)以及下图这份资料,希望你能找到理想中的工作

猜你喜欢

转载自blog.csdn.net/ping20/article/details/80219577