-
iOS 8.0以后引入
- 会自动创建
OC-SwiftDemo-Bridging-Header.h
- Swfit引用OC在
OC-SwiftDemo-Bridging-Header.h
中import
- 可以通过
genareate interface
进行OC转Swift查看 - OC引用Swift需要配置:
- 在OC中
#import “test-Swift.h”
即可引入所有的Swift文件
注意:
Objective-C类、协议、属性、方法、扩展、闭包等所有功能都可以无缝地被转换为Swift接口被Swift文件所调用。Objective-C中为了兼容 Swift,新增了三大特性Nullability、Lightweight Generics、__kindof
Objective-C调用Swift
Xcode会自动为Project
生成头文件以便在Objective-C中调用。
在Objective-C类中调用Swift,只需要#import "productModuleName-Swift.h"
即可调用,Xcode提供的头文件以Swift代码的模块名加上-Swift.h
为命名。 在这个头文件中,将包含Swift提供给Objective-C的所有接口、Appdelegate及自动生成的一些宏定义。
注意:
productModuleName-Swift.h
在Xcode中是无法搜索查看的,只能从import
中点击进去查看。
在大部分情况下,Objective-C都可以无缝地调用Swift,但是由于Swift相对于Objective-C多了一些新特性,比如泛型、元组、枚举等,所以Swift暴漏给Objective-C的接口多了一些限制,因此Swift只能暴露在Objective-C中有效的接口。