使用 Objective-C 代码中的 Swift 类
在同一个模块中
在名为MyModule 的模块中,Xcode 生成一个名为 MyModule-Swift.h
的头,它将公共 Swift 类暴露给 Objective-C。导入此标头以使用 Swift 类:
// MySwiftClass.swift in MyApp
import Foundation
// The class must be `public` to be visible, unless this target also has a bridging header
public class MySwiftClass: NSObject {
// ...
}
// MyViewController.m in MyApp
#import "MyViewController.h"
#import "MyApp-Swift.h" // import the generated interface
#import <MyFramework/MyFramework-Swift.h> // or use angle brackets for a framework target
@implementation MyViewController
- (void)demo {
[[MySwiftClass alloc] init]; // use the Swift class
}
@end
相关构建设置:
- Objective-C 生成的接口标头名称 :控制生成的 Obj-C 标头的名称。
- 安装 Objective-C 兼容性标头 :-Swift.h 标头是否应该是公共标头(用于框架目标)。
在另一个模块中
使用 @import MyFramework;
导入整个模块,包括 Swift 类的 Obj-C 接口(如果启用了上述构建设置)。