Ich habe ein altes Objective-C-Projekt und möchte eine neue Swift-Funktion und ein neues Swift-Objekt aufrufen. Ich habe die Dateien " <ProjectName>-Bridging-Header.h
" und " <ProjectName>-Swift.h
" erstellt.
Es war einfach für mich, die Funktion von Swift nach Objective-C aufzurufen, aber ich habe ein Problem mit der Umkehrung.
Also habe ich eine einfache Klasse "System.Swift" erstellt
import Foundation
@objc class System : NSObject {
@objc func printSome() {
println("Print line System");
}
}
Jetzt habe ich versucht, der Dokumentation hier zu folgen und in der <...>-Swift.h
Datei habe ich dies geschrieben
@class System;
@interface System : NSObject
-(void)printSome;
@end
und ich habe es in meine Objective-C-Klasse importiert. An diesem Punkt in meiner Objective C-Klasse (derzeit UIViewController) meines Objective-C-Codes habe ich versucht, die "printSome" -Methode aufzurufen:
- (void)viewDidLoad
{
[super viewDidLoad];
System * sis = [[System alloc] init];
[sis printSome];
//any additional setup after loading the view from its nib.
}
Jetzt habe ich folgenden Fehler:
Undefinierte Symbole für Architektur i386: " OBJC_CLASS $ _System", referenziert von: objc-class-ref in "ObjectiveC_Class_That_Call_Swift_Object" -v um Aufruf zu sehen)