Combler entre Objective-C et rapide

Il ya des cas où vous avez besoin de mélanger et de code de correspondance entre les langues Swift Objective-C et. Quand il vient à les cadres, les ingénieurs d'Apple travaillent à travers les interfaces de fournir des interfaces Swift aux côtés des versions Objective-C de sorte que vous pouvez utiliser soit l'un pour arriver à le cadre dans votre propre application.

Parfois, vous devez utiliser un pont pour se rendre à un code que vous avez besoin. Un exemple typique se produit lorsque vous utilisez les données de base des relations. Compte tenu d'un modèle de données pour les données de base (souvent fournis dans le cadre d'un modèle), vous pouvez utiliser rédacteur Créer NSManagedObject sous-classe pour créer des fichiers à ajouter à votre projet. Choisissez l'option de créer des fichiers Objective-C. Au bas de la .h déposer qui est créé, vous trouverez les déclarations des méthodes pour les membres des relations comme celles-ci:

interface WhereCategory (CoreDataGeneratedAccessors) - (void) addNecklaceObject: (*) Collier value-- (void) removeNecklaceObject :( Collier *) value-- (void) addNecklaces: (*) values-- NSSet (void) removNecklaceses: (NSSet *) - Les valeurs d

Ce code vous permet d'ajouter ou de supprimer des objets associés individuels ou l'ensemble d'objets connexes. Lorsque vous essayez de créer les fichiers, vous verrez une alerte vous demandant si vous souhaitez créer un en-tête de pont.

Le fichier créé sera nommé MonProjet-Bridging-header.h. Il suffit d'ajouter des déclarations d'importation à ce fichier pour l'Objective-C .h fichiers, comme indiqué ici, et vous serez prêt à construire votre projet mix-and-match.

// Utilisez ce fichier pour importer têtes publiques de votre cible // que vous souhaitez exposer à Swift. # Import “ Bracelet.h ” import “ Pendant.h ” classe DetailViewController: UIViewController {// @ IBOutlet faible var detailDescriptionLabel: UILabelIBOutlet var Mapview: MKMapViewIBAction FUNC ActionButton (expéditeur: ANYOBJECT) {} var detailItem: événement!? = Nil {// ANYOBJECT? {didSet {// Mise à jour du view.self.configureView ()}} FUNC configureView () {// Mise à jour de l'interface utilisateur pour le détail item.var broche = MKPointAnnotation () var longue: Double = detailItem .longitude que DoubleVar lat : Double = detailItem .latitude que DoubleVar myCoordinate: CLLocationCoordinate2D = CLLocationCoordinate2D (latitude: lat que CLLocationDegrees, longitude: longtemps que CLLocationDegrees) pin.coordinate = myCoordinatepin.title = “ essai Title ” -pin.subtitle = “ essai sous-titres ” -si var myMapView = {self.mapView myMapView.addAnnotation (broche)}} override FUNC viewDidLoad () {super.viewDidLoad () // Faire aucune configuration supplémentaire après le chargement de la vue, généralement à partir d'un nib.self.configureView ()} override FUNC didReceiveMemoryWarning () {super.didReceiveMemoryWarning () // Eliminer toutes les ressources qui peuvent être recréées.}}

» » » » Combler entre Objective-C et rapide