使用 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 介面(如果啟用了上述構建設定)。