У мене є старий проект 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: помилка: команда зв’язування не вдалася з кодом виходу 1 (використання -v, щоб побачити виклик)