Puente entre objetivo-c y rápida

Video: YOUCUBERS: "EL PUENTE MÁS LARGO" - c/trolero

Hay casos en que es necesario mezclar y código de coincidencia entre el Objective-C y los idiomas 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 necesita. Un ejemplo típico se produce cuando se utiliza la base de datos con las relaciones. Dado un modelo de datos para la base de datos (a menudo proporcionada 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 .marido archivo que se creó, encontrará declaraciones de métodos para los miembros de las relaciones como las siguientes:

@interface WhereCategory (CoreDataGeneratedAccessors) - (void) addNecklaceObject: (*) Collar value-- (void) removeNecklaceObject :( collar *) value-- (void) addNecklaces: (NSSet *) values-- (void) removNecklaceses: (NSSet *) Los valores de 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 una cabecera de puente.

Video: Puente Viejo C1160 - Lucas, objetivo de alguien misterioso

El archivo que se crea será nombrado MiProyecto-puente-Header.h. Basta con añadir las declaraciones de importación a ese archivo para el Objective-C .marido archivos, como se muestra aquí, y usted estará listo para construir su proyecto de mezcla y combinación.

// Utilice este archivo para importar cabeceras públicas de su destino // que le gustaría exponer a Swift # importación clase “Bracelet.h” import “Pendant.h” DetailViewController:. UIViewController {// @ IBOutlet detailDescriptionLabel var débil: UILabel ! @IBOutlet var MAPview: MKMapView ActionButton @IBAction func (remitente: AnyObject) {var} detailItem: 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 = “Prueba de Título” -pin.subtitle = “Prueba de subtítulos” -si var myMapView = self.mapView {myMapView.addAnnotation (pin)}} override func viewDidLoad () {super.viewDidLoad () // hacer ninguna configuración adicional después de cargar la vista, típicamente de un nib.self.configureView ()} func override didReceiveMemoryWarning () {super.didReceiveMemoryWarning () // venta de cualquiera de los recursos que se pueden volver a crear.}}
Artículos Relacionados