我试图在一个目标 c 项目中使用一个 swift 类,并花了很多时间试图让它工作但没有成功。
在我为我的 Project-Swift.h 找到正确的路径之前,所有答案都对我不起作用。
那是挽救我生命的诀窍。
按照这个步骤,你会成功的!
1 - 创建你的 xcode 项目
2 - 创建一个新的 .swift 文件
3 - 将出现一个对话框,请确保在出现提示时选择“创建桥接头”。
4 - 在 Target -> build settings,搜索“Packaging”并打开“Defines Module”
5 - 在您的 swift 文件中(示例)
import Foundation
@objcMembers
class MyClass: NSObject {
public func test () -> String {
return "Swift says hi to objc class!"
}
}
这里注意@objcMembers,它会让objc类识别swift类!
在这里找到它
6 - 在您的 objc 类 .m 或 .h 文件中,在步骤 3 中导入您自动生成的 Project-Swift.h 文件
我的目标是导入它:
#import <Teste-Swift.h>
并不是:
#import "Teste-Swift.h"
就是这样,头痛后我得到了答案
所以最后,我的 .m 文件是这样的:
#import "ViewController.h"
#import <Teste-Swift.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//-------------
MySwiftClass *myswiftclass = [[MySwiftClass alloc] init];
NSString *string = [myswiftclass test];
NSLog(@"%@",string);
}
@end
我的 .swift 文件:
import Foundation
@objcMembers
class MySwiftClass: NSObject {
public func test () -> String {
return "Swift says hi second swift class!"
}
}
我希望这可以帮助你们。