Swift使用Objective-C代码中的Swift类
示例
在同一模块中
在名为“MyModule”的模块内,Xcode生成一个名为的标头,该标头MyModule-Swift.h将公共Swift类公开给Objective-C。导入此标头以使用Swift类:
//MySwiftClass.swiftinMyApp import Foundation //该类必须是“public”才能可见,除非该目标也具有桥接头public class MySwiftClass: NSObject { //... }
//MyViewController.minMyApp #import "MyViewController.h"#import "MyApp-Swift.h" //导入生成的接口#import <MyFramework/MyFramework-Swift.h> //或将尖括号用于框架目标 @implementation MyViewController - (void)demo { [[MySwiftClass alloc] init]; //使用Swift类 } @end
相关的构建设置:
Objective-C生成的接口头名称:控制生成的Obj-C头的名称。
安装Objective-C兼容性标头:-Swift.h标头是否应为公共标头(用于框架目标)。
在另一个模块中
使用@importMyFramework;导入整个模块,包括到Swift类的Obj-C接口(如果启用了上述构建设置)。