我无法按照以下步骤在我的目标c项目中导入swift类:
环境:
Xcode:10.0
迅速:4.2
1-Ctrl + N生成一个新的快捷文件
2-从xcode问题中选择“创建桥接标题”
3-在目标上->构建设置,搜索“打包”并打开“定义模块”
4-在我的objc .m文件中导入#import“ MyProjectModuleName-Swift.h”
5-尝试调用我的swift方法,但似乎没有任何效果,我无法调用它,因为我的.m类无法识别我的.swift文件。
怎么了?
答案 0 :(得分:0)
我试图在目标c项目中使用swift类,并花了很多时间试图使它无法成功工作。
在我为我的Project-Swift.h找到正确的路径之前,所有答案都对我不起作用。
那是挽救我生命的把戏。
按照此步骤操作,您将成功!
1-创建您的xcode项目
2-创建一个新的.swift文件
3-将出现一个对话框,请确保在提示时选择“创建桥接标题”。
4-在目标上->构建设置,搜索“打包”并打开“定义模块”
5-在您的快速文件上(示例)
import Foundation
@objcMembers
class MyClass: NSObject {
public func test () -> String {
return "Swift says hi to objc class!"
}
}
请注意 @objcMembers ,它将使objc类识别出Swift类!
6-在第3步中,将objc类.m或.h文件导入自动生成的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!"
}
}
我希望这可以帮助您。