OC项目中使用Swift

简介

由于现在用到swift,做了一些基础性的研究,由于原先的工程都是使用OC编写的,不可能一下全部转换成Swift,所以采用OC与Swift混编的方式是最好的选择。这篇文章只是一个简单的介绍,并没有太高深的知识。

开始

我在已经的创建OC的工程,当然你可以使用新创建的OC工程,如果我们想要在OC工程中使用Swift的代码,Swift的代码默认是使用module管理的,同样这里我们也需要把我们的Swift代码作为一个module暴露给我们的OC工程,修改下面的配置:


OC项目中使用Swift_第1张图片
屏幕快照 2017-03-24 下午1.54.12.png

上面的修改了一个配置项,有一个Product Module Name在后面会使用。

创建一个swift文件

OC项目中使用Swift_第2张图片

上图中的Subclass of一定要设置为NSObject或其子类,否则OC工程将不会找到该类。

点击确认后会选择保存路径,点击Create,出现如下界面:


OC项目中使用Swift_第3张图片

这个界面是询问是否创建桥接的头文件,这个文件在Swift调用OC代码的时候比较管用,但是在OC中调用Swift的时候我发现没有什么卵用。

选择Don’t Create按钮。
在Test.swift中添加如下的代码(解释都在注释里面了):

OC项目中使用Swift_第4张图片
屏幕快照 2017-03-24 下午2.20.26.png

我们在我们想要调用Swift类的方法里面引入头文件:”Product Module Name-Swift.h”,其中Product Module Name替换成在上面配置项中显示的内容,例如:


OC项目中使用Swift_第5张图片
屏幕快照 2017-03-24 下午2.21.09.png
OC项目中使用Swift_第6张图片
屏幕快照 2017-03-24 下午2.28.25.png

这样我们就能够在OC中使用Swift的代码了,最后还要说明一点:”Product Module Name-Swift.h”(例子中的是ProjectComtus-Swift.h),是由编译器自动生成的,如果import后没有提示,编译一下。并且只有在工程中包含至少一个Swift文件的时候,才会自动生成这个文件,所以如果工程中如果没有Swift文件的时候,就算在配置中设置对了,import该文件也会报错。

本文版权归作者所有:http://blog.csdn.net/mengxiangyue
独立博客:http://mengxiangyue.com

你可能感兴趣的:(OC项目中使用Swift)