最佳答案
我有一个旧的 Objective-C 项目,我想调用新的 Swift 函数和对象,我已经创建了文件“ <ProjectName>-Bridging-Header.h
”和“ <ProjectName>-Swift.h
”
对我来说调用从 Swift 到 Objective-C 的函数很容易,但是我有一个反向的问题。
所以我创建了一个简单的类“ System. Swift”
import Foundation
@objc class System : NSObject {
@objc func printSome() {
println("Print line System");
}
}
现在我已经尝试按照文档 给你和在 <...>-Swift.h
文件中我已经写了这一点
@class System;
@interface System : NSObject
-(void)printSome;
@end
我把它导入到我的 Objective-C 类中。此时,在 Objective-C 代码的 Objective C 类(目前是 UIViewController)中,我尝试调用“ printSome”方法:
- (void)viewDidLoad
{
[super viewDidLoad];
System * sis = [[System alloc] init];
[sis printSome];
//any additional setup after loading the view from its nib.
}
现在我有以下错误:
架构 i386的未定义符号: “ OBJC _ CLASS $_ System”, 引自: “ ObjectiveC _ Class _ That _ Call _ Swift _ Object”中的 objecc-class-ref. o ld: 在体系结构 i386中找不到符号 clang: error: linker 命令失败,退出代码1(使用 -v 查看调用)