美文网首页
iOS中objc和swift混编经验谈

iOS中objc和swift混编经验谈

作者: 八点钟IOS暮雨 | 来源:发表于2018-06-06 20:54 被阅读0次

    更多精彩资讯 实用技巧 【点我

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

    新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编。这个在iOS8中是允许的。

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


    为了演示。先准备两个类

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

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

    首先 新建一个工程 开发语言选择swift


    image

    然后创建一个OC的类

    image

    在创建的时候会提示出现创建一个桥接文件

    image

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

    image

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


    image

    然后在桥接文件里面导入OC累的头文件名称

    image

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

    image

    自此 就实现了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的类都有头文件 我们可以在这儿查看到.

    image

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

    image

    更多精彩资讯 实用技巧 【点我

    相关文章

      网友评论

          本文标题:iOS中objc和swift混编经验谈

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