У меня есть старый проект 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 (в настоящее время UIViewController) моего кода Objective-C я пытаюсь вызвать метод 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», ссылка на которую: objc-class-ref в «ObjectiveC_Class_That_Call_Swift_Object» .o ld: символ (ы) не найден для архитектуры i386 clang: error: команда компоновщика завершилась неудачно с кодом выхода 1 (используйте -v, чтобы увидеть вызов)