Usando la class Swift dentro de Objective-C

Recibo un error de file not found cuando bash #import "DodgeHeroReal-Swift.h . El nombre del module de mi producto está configurado en DodgeHeroReal y Define Modules también está establecido en YES (tanto en el nivel de destino como en el nivel de proyecto para ambas configuraciones de compilation ). Ya tengo un encabezado Bridging que fue generado por Xcode. Tengo una class swift emojisClass que quiero poder usar en mi Objective-C ViewController EmojiShopViewController.

He mirado las numerosas y maravillosas publicaciones de StackOverflow sobre proyectos objc y swift mixtos, pero ninguna de las soluciones propuestas parece funcionar. También he visto la página de documentation de Apple, pero eso tampoco ayuda. ¿Alguien me puede guiar por cómo puedo usar la siguiente class rápida en mi ViewController.m?

Aquí está GlobalFunc.swift (que tiene la class emojisClass )

 @objc(EmojiClass) class emojisClass { @objc(buyAngle) func buyAngle(){ if(emotiBucks >= 10000){ var value = emotiBucks-10000 NSUserDefaults.standardUserDefaults().setBool(true, forKey: "haveAngleEmoji") NSUserDefaults.standardUserDefaults().setInteger(value, forKey: "emotiBucks") NSUserDefaults.standardUserDefaults().synchronize() } } func buyAlien(){ if(emotiBucks >= 2000){ var value = emotiBucks-2000 NSUserDefaults.standardUserDefaults().setBool(true, forKey: "haveAlienEmoji") NSUserDefaults.standardUserDefaults().setInteger(value, forKey: "emotiBucks") NSUserDefaults.standardUserDefaults().synchronize() } } func buySassy(){ if(emotiBucks >= 5000){ var value = emotiBucks-5000 NSUserDefaults.standardUserDefaults().setBool(true, forKey: "haveSassyEmoji") NSUserDefaults.standardUserDefaults().setInteger(value, forKey: "emotiBucks") NSUserDefaults.standardUserDefaults().synchronize() } } func buyHeart(){ if(emotiBucks >= 3000){ var value = emotiBucks-3000 NSUserDefaults.standardUserDefaults().setBool(true, forKey: "haveHeartEmoji") NSUserDefaults.standardUserDefaults().setInteger(value, forKey: "emotiBucks") NSUserDefaults.standardUserDefaults().synchronize() } } } 

Importé el encabezado de puente en mi EmojiShopviewController.m: #import "Dodge Hero-Bridging-Header.h" . Ahora quiero poder llamar a la function buyAngle () que está declarada en mi file rápido.

EDITAR : El proyecto originalmente fue un proyecto rápido, luego agregué los files Obj-C, luego el Bridging-Header. Entonces, el proyecto contiene files .swift y objc, y ahora quiero poder generar ProductModule-Swift.h sin borrar ninguno de mis files actuales.

EDIT 2 : ejecutar find * -iname '*Swift.h' y luego un CMD + F en Terminal en mi directory DerivedData devuelve esto:

 ****** Other stuff ******** DodgeHeroReal-gmmvxsfrydixythkdwqjpncbqlpl/Build/Intermediates/DodgeHeroReal.build/Debug-iphonesimulator/DodgeHeroRealTests.build/DerivedSources/DodgeHeroReal-Swift.h DodgeHeroReal-gmmvxsfrydixythkdwqjpncbqlpl/Build/Intermediates/DodgeHeroReal.build/Debug-iphonesimulator/DodgeHeroRealTests.build/DerivedSources/DodgeHeroRealTests-Swift.h DodgeHeroReal-gmmvxsfrydixythkdwqjpncbqlpl/Build/Intermediates/DodgeHeroReal.build/Debug-iphonesimulator/DodgeHeroRealTests.build/Objects-normal/x86_64/DodgeHeroReal-Swift.h ****** More other stuff ******** 

Me parece que a veces un error en un file rápido hace que el file ProjectName-Swift.h no se genere y no hay ninguna advertencia. Intente get todos los files rápidos sin errores, incluso si tiene que simularlos temporalmente, por ejemplo, comentando algo o agregando código falso que comstack sin errores. Además, asegúrese de que las classs rápidas que hace reference desde Objective-C henetworkingan de NSObject, o alguna otra class de Objective-C, y asegúrese de que no todas estén marcadas como privadas. He desperdiciado días intentando descubrir por qué ocurrió este error, ¡puede ser realmente frustrante!

Tenga en count que puede hacer un command y hacer clic en el nombre del file Swift-> Objective-C en la statement de import y Xcode le mostrará su contenido. Si da un pitido de error, significa que aparentemente no se encontró el file, por lo que probablemente no se generó.

Me encontré con esto una vez y mi problema era una enumeración en el mismo file rápido que no estaba marcado con la label @objc.