oc调用swift

OC调用Swift


如果你想在Objective-C工程中,嵌入Swift文件,实现OC调用Swift,那么这篇文章就能帮助你,由于本人最近在开发Swift项目,所以实现过OC调用Swift,在这过程中遇到过一些瓶颈,特此,将此文奉上,供大家参考。

OC调用Swift文件,需要创建桥接头文件,这个文件是当你在OC开发环境中创建Swift文件时由Xcode生成,该桥接头文件的命名是:<工程名>-Bridging-Header.h,它的作用是实现OC和Swift文件混编,并且如果我们想在当前OC类中调用Swift文件,必须在当前OC类中包含头文件,它的命名是:<工程名>-Swift.h,该头文件是由Xcode本身去维护,当我们点击进入到该头文件时,会看到Swift文件被编译成了OC封装的接口。

下面让我们来通过一个小Demo,进一步了解如何实现OC调用Swift。


第一步:创建OC工程

启动Xcode 7.1,然后单击File→New→Project菜单,在打开的Choose atemplate for your new project界面中选择“iOS →Application→Single View Application”工程模板(如下图所示)。


选中Single View Application单击“Next”,会出现如下图所示



这里我们将工程名命名为OCCallSwift,单击“Next”,就会出现下图所示的界面


单击“Create”,这时我们的OC工程就创建好了。

接下来我们创建一个OC的类,类名为OCViewController,具体怎么创建就不详细说了。


第二步:在OC工程中添加Swift文件


在当前OC工程中,创建Swift文件,如下图所示:


选中Cocoa Touch Class,点击“Next”,此时会跳到下图:


这里我们将Swift文件命名为SwiftViewController,将Language设置为Swift,单击“Next”,跳到下图:


这时单击“Creat”,就会弹出“Would you like to configure an Objective-C bridging header?”,如下图所示


单击“Create Bridging Header”,这时我们就在OC工程中创建好了一个Swift文件,如下图所示



第三步:实现OC调用Swift

这里我们就简单实现一下在OC类中跳转到Swift文件中

1)在OC类中包含头文件

#import <OCCallSwift-Swift.h>,命名规则为:<工程名>-Swift.h,如下图所示


2)在OC类中调用Swift文件,跟OC类调用OC类实现方式一样,如下图所示:



这样我们就实现了OC调用Swift。


友情提示:1.以上的代码是在Xcode7.1中实现,并且是新工程;

2.必须创建桥接头文件(“Create Bridging Header);

3.必须在调用Swift文件的OC类中包含如下头文件:<工程名>-Swift.h

4.如果以上条件全部符合,但是你在一个老的OC应用中调用Swift,有可能出现下面情况'<工程名>.Swift' file not found,这时你就应该在Xcode中的Build Setting中找到"Defines module",将其改为Yes


特别说明:1. 以上Swift文件均指Swift类;

  2. Swift语言为Swift2.0版本。


著作权声明:本文为原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页