¿Cómo puedo importar código Swift a Objective-C?

Resuelto Dark Matter asked hace 10 años • 16 respuestas

Escribí una biblioteca en Swift y no pude importarla a mi proyecto actual, escrito en Objective-C.

¿Hay alguna forma de importarlo?

#import "SCLAlertView.swift" - 'SCLAlertView.swift' file not found
Dark Matter avatar Jun 08 '14 08:06 Dark Matter
Aceptado

Necesitas importar ProductName-Swift.h. Tenga en cuenta que es el nombre del producto; las otras respuestas cometen el error de usar el nombre de la clase.

Este archivo único es un encabezado generado automáticamente que define las interfaces Objective-C para todas las clases Swift en su proyecto que están anotadas @objco heredadas de NSObject.

Consideraciones:

  • Si el nombre de su producto contiene espacios, reemplácelos con guiones bajos (por ejemplo, My Projectse convierte en My_Project-Swift.h)

  • Si su objetivo es un marco, necesita importar<ProductName/ProductName-Swift.h>

  • Asegúrese de que su archivo Swift sea miembro del objetivo

Bill avatar Jun 08 '2014 04:06 Bill

Esto es lo que debe hacer:

  1. Crear un nuevo proyecto en Objective-C

  2. Crear un nuevo .swiftarchivo  

    • Aparecerá una ventana emergente que le preguntará "¿Le gustaría configurar un encabezado puente Objective-C?" .
    • Elija .
  3. Haga clic en su archivo de proyecto Xcode

  4. Haga clic en Configuración de compilación

  5. Busque la barra de búsqueda y busque Define Module .

  6. Cambie el valor a .

  7. Nombre del módulo de producto de búsqueda .

  8. Cambie el valor al nombre de su proyecto.

  9. En Delegado de aplicación, agregue lo siguiente:#import "YourProjectName-Swift.h"


Nota: Siempre que desee utilizar su archivo Swift, debe importar la siguiente línea:

#import "YourProjectName-Swift.h"

Sumit singh avatar Jul 06 '2015 09:07 Sumit singh

Instrucciones del sitio web de Apple:

Para importar código Swift a Objective-C desde el mismo marco

En Configuración de compilación , en Empaquetado , asegúrese de que la configuración Define Module para ese objetivo de marco esté establecida en . Importe el código Swift de ese marco de destino a cualquier archivo Objective-C .m dentro de ese marco de destino usando esta sintaxis y sustituyendo los nombres apropiados:

#importar "NombreProducto-Swift.h"

Revisión:

Solo puede importar "ProductName-Swift.h" en archivos .m.

Los archivos Swift en su destino serán visibles en los archivos .m de Objective-C que contienen esta declaración de importación.

Para evitar referencias cíclicas, no importe Swift a un archivo de encabezado Objective-C. En su lugar, puede declarar una clase Swift para usarla en un encabezado Objective-C. Tenga en cuenta que no puede subclasificar una clase Swift en Objective-C.

ingrese la descripción de la imagen aquí

Andrei Papancea avatar Nov 11 '2014 20:11 Andrei Papancea