OC与Swift混编(OC中使用Swift 与 Swift 中使用 OC)

OC中使用Swift


1、在项目中右键添加一个 Swift 文件,如TestSwift.swift。

2、添加后 Xcode 弹出‘是否配置 OC 桥接头文件’的提示,点确认,系统自动生成一个项目名-Bridging-Header.h的文件,如TestSwift-Bridging-Header.h。配置 OC 桥接头文件的提示。

3、TestSwift-Bridging-Header.h实质上是一个供 Swift 使用的头文件,在这里把所有要暴露给 Swift 的 OC 头文件都添加进去,这样写 Swift 的时候就可以直接使用那些 OC 的类和方法了。

因为 Swift 本身没有头文件,只有. swift;而 OC 有. h 和. m 文件。有了这个声明,.swift 就可以直接使用 OC 的. h 了。

4、接下来直接在TestSwift.swift中写 Swift 代码。

5、在 OC 中使用 Swift,我在AppDelegate.m中使用刚才创建的 Swift 类,那么先要引用 Swift 头文件,即#import "TestSwift-Swift.h",然后在这个 .m 文件中就可以任意使用 Swift 创建的类和方法了:

6、理解 #import "TestSwift-swift.h"

其实是项目名-swift.h,这也是 XCode 自动生成的,根据你写的所有 Swift 代码,生成一个 OC 的. h 文件,进行类和方法的声明,这样在 OC 里引用这个头文件后,就相当于引用了所有 Swift 声明,可以直接使用了。


Swift 中使用 OC


Swift 代码引用 OC,需依靠Objective-C bridging header将相关文件暴露给 Swift。

创建Objective-C bridging header有两种方法:

1、当在 Swift 项目中初次尝试创建 OC 文件时(不能通过拖拽的方式加入项目),系统会自动帮你创建Objective-C bridging header.

此时除了.h、.m文件之外,会额外多出一个叫做项目工程名-Bridging-Header.h的文件,这个文件中导入的类是可以暴露给 Swift 看到的。要做的,只是#import XXXX.

2、自己创建Objective-C bridging header

File > New > File > (iOS or OS X) > Source > Header File

切记,名字一定要是项目工程名-Bridging-Header.

然后还有一步,在项目的Build Settings选项里,要确保Swift Compiler选项里有这个Bridging Header文件的设置,路径必须指向文件本身,而不是目录!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 利用runtime特性实现iOS项目的组件化开发,是由@casatwy大神提出来的,在他的博客中具体介绍...
    Mr杰杰阅读 1,639评论 2 9
  • 前言: Swift语言出来后,可能新的项目直接使用Swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好...
    疯狂的电脑阅读 2,353评论 0 9
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,246评论 4 61
  • 人们常说:“开卷有益,看书有益。”但 是,仔细思考,其实这种说法也未必是对的。如果说我们对任何书都感到兴趣,那...
    溟夜星辰阅读 702评论 0 4
  • 路由是 Angular 应用程序的核心,它加载与所请求路由相关联的组件,以及获取特定路由的相关数据。这允许我们通过...
    semlinker阅读 12,203评论 4 16