在Swift项目中使用OC,在OC项目中使用Swift

原文地址
几天前,我开始新的App的开发了。终于有机会把swift用在实战中了,也学到了之前纯学语法时没有机会获得的知识。

这篇博文中,我就如何使用swift、OC混编做一个介绍。
OC中使用Swift

首先,在工程的 Build Settings 中把 defines module 设为 YES.

在Swift项目中使用OC,在OC项目中使用Swift_第1张图片

然后,把product module name设置为 项目工程的名字
在Swift项目中使用OC,在OC项目中使用Swift_第2张图片

最后一步,在你的OC文件中导入 ProjectName-Swift.h.
在Swift项目中使用OC,在OC项目中使用Swift_第3张图片

注意: ProjectName-Swift.h 这个文件是系统自己创建的,千万不要手动创建。

Swift中使用OC

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

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

1、当你在Swift项目中尝试创建OC文件时,系统会自动帮你创建 Objective-C bridging header .

在Swift项目中使用OC,在OC项目中使用Swift_第4张图片

在Swift项目中使用OC,在OC项目中使用Swift_第5张图片

在Swift项目中使用OC,在OC项目中使用Swift_第6张图片

此时除了 .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 文件的设置,路径必须指向文件本身,而不是目录!
在Swift项目中使用OC,在OC项目中使用Swift_第7张图片

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