Tender un puente entre Objective-C y rápida
Hay casos en los que usted necesita para mezclar y código de coincidencia entre el Objective-C y lenguas Swift. Cuando se trata de los marcos, los ingenieros de Apple están trabajando a través de las interfaces para proporcionar interfaces de Swift junto a las versiones de Objective-C para que pueda utilizar cualquiera de ellas para llegar al marco en su propia aplicación.
A veces es necesario utilizar un puente para llegar al código que usted necesita. Un ejemplo típico se produce cuando se utiliza de Datos Básicos con las relaciones. Dado un modelo de datos para de Datos Básicos (a menudo proporcionan como parte de una plantilla), puede utilizar el Editor-Crear NSManagedObject Subclase para crear archivos para agregar a su proyecto. Elija la opción de crear archivos de Objective-C. En la parte inferior de la .h archivo que se creó, encontrará declaraciones de métodos para los miembros de las relaciones como éstas:
interface WhereCategory (CoreDataGeneratedAccessors) - (void) addNecklaceObject: (*) Collar value-- (void) removeNecklaceObject :( Collar *) value-- (void) addNecklaces: (*) values-- NSSet (void) removNecklaceses: (NSSet ) Valores * - d
Este código le permite agregar o quitar objetos relacionados individuales o todo el conjunto de objetos relacionados. Cuando intenta crear los archivos, verá una alerta que le pregunta si desea crear un encabezado de puente.
El archivo que se crea será nombrado MyProject-puente-Header.h. Sólo tienes que añadir las declaraciones de importación a ese archivo para el Objective-C .h archivos, como se muestra aquí, y estarás listo para construir su proyecto mix-and-match.
// Utilice este archivo para importar cabeceras públicas de su destino // que le gustaría exponer a Swift. # Importaciones " Bracelet.h " import " Pendant.h " clase DetailViewController: UIViewController {// @ IBOutlet débil detailDescriptionLabel var: UILabelIBOutlet var MapView: MKMapView funcIBAction ActionButton (remitente: AnyObject) {} detailItem var: Evento!? = Nil {// AnyObject? {didSet {// Actualizar el view.self.configureView ()}} func configureView () {// Actualizar la interfaz de usuario para el detalle item.var pin = MKPointAnnotation () var larga: Doble = detailItem .longitude como Doublevar lat : Doble = detailItem .latitude como Doublevar myCoordinate: CLLocationCoordinate2D = CLLocationCoordinate2D (latitud: Lat como CLLocationDegrees, longitud: de largo como CLLocationDegrees) pin.coordinate = myCoordinatepin.title = " Título Prueba " -pin.subtitle = " Prueba Subtítulo " -si var myMapView = self.mapView {myMapView.addAnnotation (pin)}} anulación func viewDidLoad () {super.viewDidLoad () // Realice una configuración adicional después de cargar la vista, por lo general a partir de un nib.self.configureView ()} didReceiveMemoryWarning func anulación () {super.didReceiveMemoryWarning () // Deseche cualquier recurso que puede ser recreados}.}