Swift与Objective-C混编
备注:<Module Name>
是项目名称
Objective-C调用Swift
首次在Objective-C项目中创建Swift文件会提示是否创建桥接文件。
如果在Targe -> Build Settings -> Objective-C Generated Interface Header Name
中,包含字符串<Module Name>+Swift.h
,即表示已经建立桥接。
在Objective-C需要调用Swift类的地方导入头文件#import "<Module Name>+Swift.h"
。
Objective-C要调用的Swift类必须继承NSObject。
在Objective-C调用Swift的属性或函数时,Swift属性或函数必须要添加@objc
修饰。
例如:@objc var value: Int = 0
,@objc func function {}
Swift调用Objective-C
同意Xcode桥接创建,会生成一个<Module Name>-Bridging-Header.h
文件,在这个文件import Objective-C的头文件后,就可以在Swift中使用Objective-C类。
如果没有<Module Name>-Bridging-Header.h
这个文件,可以创建一个,然后Targe -> Build Settings -> Objective-C Bridging Header
中添加<Module Name>-Bridging-Header.h
的Target的相对路径<Module Name>/<Module Name>-Bridging-Header.h
。
备注:路径如果移动需要及时修改,否则会找不到文件