Tengo un antiguo proyecto de Objective-C y quiero llamar a una nueva función y objeto Swift, he creado el archivo " <ProjectName>-Bridging-Header.h
" y " <ProjectName>-Swift.h
"
Fue fácil para mí llamar a la función de Swift a Objective-C pero tengo un problema para revertir.
Así que he creado una clase simple "System.Swift"
import Foundation
@objc class System : NSObject {
@objc func printSome() {
println("Print line System");
}
}
ahora he intentado seguir la documentación aquí y dentro del <...>-Swift.h
archivo escribí esto
@class System;
@interface System : NSObject
-(void)printSome;
@end
y lo he importado dentro de mi clase Objective-C. En este punto, dentro de mi clase Objective C (actualmente UIViewController) de mi código Objective-C, he intentado llamar al método "printSome":
- (void)viewDidLoad
{
[super viewDidLoad];
System * sis = [[System alloc] init];
[sis printSome];
//any additional setup after loading the view from its nib.
}
ahora tengo el siguiente error:
Símbolos no definidos para la arquitectura i386: " OBJC_CLASS $ _System", referenciado desde: objc-class-ref en "ObjectiveC_Class_That_Call_Swift_Object" .o ld: símbolo (s) no encontrado para la arquitectura i386 clang: error: el comando del enlazador falló con el código de salida 1 (use -v para ver la invocación)