[转]在OC项目中添加Swift文件并实现混合编程

关键摘要:

1、swift中调用OC,引用 项目名-Bridging-Header.h

2、OC中调用swift,引用 项目名-Swift.h

转载自:http://www.it165.net/pro/html/201501/32179.html

对于已经工作的开发者,并不适合也没有条件从一个全新的swift项目开始,进行开发. 虽然网上关于swift和oc混合编程的教程比较多,但是大多是基于 swift项目的,所以对咱们 OCer的参考价值有一定折扣.

现在swift虽然仍然存在很多缺陷,但是鉴于苹果的强势,是时候在项目中把简单的功能交给swift了,给自己,给项目,给swift一个缓冲区,都是极好的.

说了这么多,开始上代码.

现在的背景是: 已经有一个oc项目了,我想要加入 swfit,并且实现 oc调用 swift ,swift调用oc .

1.新建一个swift文件

2.接下来会询问你是否建立桥接文件,点击是 ,那么我后面的就是多余的了,所以选择取消,我们手动建立桥接文件

3.手动建立桥接文件:新建头文件

关于命名: 有经验的人都知道,这个头文件是项目公用的,同时如果自动创建,文件名也是 :

项目名-Bridging-Header.h

但是因为我现在的项目名是中文,所以我自己命名了一下.

 

4. 配置头文件

在build setting里面搜索 swift ,根据实际情况进行配置:

注意:是相对于工程文件所在的相对路径.从 Finder里面看,不要让项目中得group扰乱你的判断

5.在头文件中引入需要的 oc头文件,这里我就用 UIKit了

 

6.编写代码

 

可以看到,我们可以使用UIKit的类了

注意:关于自定义类,希望有个好的命名规范,那么在混合编程中,你将受益无穷

7.oc调用swift

现在因为测试我想把窗口的根控制器设置为我的swift的那个.

因为swift没有头文件,所以不好办了...

其实,系统默认给我们生成了头文件(需要我们的swift类是NSObject的直接或者间接子类),我们只要引入

项目名-Swift.h

没办法了,我的项目名是中文...

引入:

8.使用 swift的类

9.运行

一切正常 (好丑,不要吐槽)

Leave a Reply

Your email address will not be published. Required fields are marked *