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文件的设置,路径必须指向文件本身,而不是目录!

OC与Swift混编(OC中使用Swift 与 Swift 中使用 OC)_第1张图片

你可能感兴趣的:(OC与Swift混编(OC中使用Swift 与 Swift 中使用 OC))