OC 项目混编Swift
-
在OC项目中初始创建swift文件时,会提醒创建桥接文件
点击 Create Bridging Header 就会生成一个桥接文件
如果误点导致没有创建桥接文件,可手动创建一个 “工程名-Bridging-Header.h" 的头文件,然后在工程中配置文件(参考下一步) -
工程配置
target | Build Settings
-
swift 引用 OC
在桥接文件中导入Swift需要访问的OC类,.Swift文件中即访问OC的类了 -
OC 引用 Swift
需要导入隐式头文件:xxx-Swift.h,xxx-Swift.h在项目中是看不到的,但是确实是可以import的
编辑import时,Xcode 并不会有导入该头文件的快捷提示
我们可以创建一个头文件,然后在该头文件中引入这个隐式头文件:
问题
- OC 中无法调用Swift的方法:
隐式 @objc 自动推断
class SwiftClass { }
@objc extension SwiftClass {
func foo() { } //包含隐式的 @objc
func bar() { } //包含隐式的 @objc
}