作者:Thomas Hanning 原文链接
Objective-C 和 Swift 能很好的交互,所以在同一个项目中可以很容易的同时使用两者。
在 Swift 文件中使用 Objective-C 写的代码
你可以在一个我们称它为 bridging-header
文件里面导入 Objective-C 文件。Xcode 会把这些(Objc 文件)转换成 Swift 可用,后面使用起来就感觉和 Swift 一样了。
创建 bridging-header
文件很容易,新建 Objective-C 类的时候,如果你的项目里面还没有 bridging-header
文件,Xcode 会提示你来新建(译注:确认之后建立的文件名是:项目名-Bridging-Header.h)。当然你可以选择不创建而自己手动来建立,直接新建 Objective-C 头文件,取名:Bridging-Header.h(译注:你也可以另外取个),然后定位到 “Build Settings”
里面的 “Swift Compiler – Code generation” 设置项,把 “Objective-C Bridging Header” 设置成刚才的文件名。
添加 Objective-C 文件到 bridging-header
之后,使用之前还需要把项目编译下,就可以使用了。
在 Objective-C 文件中使用 Swift 写的代码
反过来甚至更简单。Xcode 会自动新建一个文件,你只需要在 Objective-C 文件里面引入这个很重要的文件:<ProductModuleName>-Swift.h
#import "<ProductModuleName>-Swift.h"
<ProductModuleName> 就是项目的名字(译注:不用加<>)。所有继承自 NSObject
或者是其子类的 Swift 文件都可以在 Objective-C 文件中使用。
还是和上面一样,使用之前你需要先编译你的项目。
为什么要在一个项目里面即使用 Swift 又使用 Objective-C 呢?
所以还是有个问题:为什么要在一个项目里面即使用 Swift 又使用 Objective-C 呢?是的,如果要开始一个新的项目,Swift 是个很好的选择,但是你还想使用之前已经写好的一些 Objective-C 写的类库,你就可以很容易的使用它们。反过来 Objective-C 项目里面使用 Swift 也很容易。这种方式可以让你一步一步的来学习 Swift。这里有两篇文章是关于这个的讨论:
参考
@Anchiy / shutterstock.com
iBook Store: Using Swift with Cocoa and Objective-C