Swift 与 Objective-C 的兼容能力使你可以在同一个工程中同时使用两种语言。你可以用这种叫做 mix and match
的特性来开发基于混合语言的应用,可以用 Swfit 的最新特性实现应用的一部分功能,并无缝地并入已有的 Objective-C 的代码中。
Xcode会自动为Project生成头文件以便在Objective-C中调用。 在Objective-C类中调用Swift,只需要#import "productModuleName-Swift.h"即可调用,Xcode提供的头文件以Swift代码的模块名加上-Swift.h为命名。
#import "productModuleName-Swift.h"
在这个头文件中,将包含Swift提供给Objective-C的所有接口、Appdelegate及自动生成的一些宏定义。注意productModuleName-Swift.h在Xcode中是无法搜索查看的,只能从import中点击进去查看。
当在Swift工程中新建Objective-C文件或者在Objective-C工程中新建Swift文件时,Xcode会自动提示你是否创建名为 SwiftProject-Bridging-Header.h
桥接头文件
创建好Bridging Header文件后,在Bridging Header文件中即可import需要提供给Swift的Objective-C头文件,Swift即可调用对应的Objective-C文件。
#import "RNCryptor.h"
同时Xcode可以自动生成Objective-C对应的Swift接口。OCViewController.h对外提供了一些Public的属性和方法,点击Xcode generated interface后可以看到Objective-C转换为Swift后的Public接口。
You cannot subclass a Swift class in Objective-C.