Apprendre Swift à partir d'Objective-C

Variables, classes, méthodes et propriétés

Dans cette série d'articles, nous allons voir quelques-unes des différences présentes entre Swift et l'Objective-C. Ce tutoriel est plus approprié à ceux connaissant déjà l'Objective-C (au moins ses bases) et qui veulent connaître quels sont les équivalents avec Swift.

Eh bien, allons-y ! Voici un guide très pratique à garder sous la main durant votre apprentissage de Swift.

Retrouvez la première partie de ce cours : Apprendre Swift à partir d'Objective-C : Introduction

Les commentaires et les suggestions d'amélioration sont les bienvenus, alors, après votre lecture, n'hésitez pas. Commentez Donner une note à l'article (5).

Article lu   fois.

Les deux auteur et traducteur

Traducteur : Profil Pro

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Variables et constantes

Swift rend la déclaration de variables moins confuse pour les débutants, car elle ressemble plus au langage naturel. Notez également que le point-virgule à la fin des déclarations disparaît.

I-A. Déclarer un entier comme variable

I-A-1. Objective-C

En Objective-C, il faut toujours déclarer explicitement le type de la variable que vous déclarez.

 
Sélectionnez
  1. int highScore; 
  2. NSString *nomJoueur; 

I-A-2. Swift

Avec Swift, le mot-clé "var" est utilisé pour déclarer une variable, sans avoir besoin de spécifier son type, s'il peut être déterminé par ce que vous attribuez à la variable. Notez également qu'avec Swift, la classe NSString est délaissée pour la classe String.

 
Sélectionnez
  1. var highScore: Int 
  2. var nomJoueur: String 

I-B. Assigner une valeur à une variable

Notez que lorsque l'on crée une chaîne de caractères pour l'assigner à une variable de type String, le "@" n'est pas nécessaire pour Swift.

I-B-1. Objective-C

 
Sélectionnez
  1. highScore = 1000; 
  2. nomJoueur = @"Joe Chan"; 

I-B-2. Swift

 
Sélectionnez
  1. highScore = 1000 
  2. nomJoueur = "Joe Chan" 

I-C. Déclarer et assigner des constantes

Swift utilise le mot-clé "let" pour déclarer des constantes.

I-C-1. Objective-C

 
Sélectionnez
  1. NSString *const couleurCiel = @"Blue" 
  2. int const joursDanslAnnee = 365; 

I-C-2. Swift

 
Sélectionnez
  1. let couleurCiel = "Blue" 
  2. let joursDanslAnnee = 365 

II. Classes

II-A. Définir une classe

Une différence notable dans la définition des classes avec Swift est l'absence de fichier d'en-tête (.h) et de fichier d'implémentation (.m).

II-A-1. Objective-C

Fichier d'en-tête (.h)

 
Sélectionnez
  1. @interface CustomClass : NSObject 
  2. @end 

Fichier d'implémentation (.m)

 
Sélectionnez
  1. @implementation CustomClass 
  2. @end 

II-A-2. Swift

 
Sélectionnez
  1. class CustomClass { 
  2. } 

II-B. Créer une nouvelle instance de classe

Créer de nouvelles classes en Swift se fait avec le nom de la classe suivi d'une paire de parenthèses.

II-B-1. Objective-C

 
Sélectionnez
  1. CustomClass *instance = [[CustomClass alloc] init]; 
  2. CustomClass *secondInstance = [CustomClass new]; 

II-B-2. Swift

 
Sélectionnez
  1. var instance = CustomClass() 

II-C. L'héritage

L'héritage est très similaire dans les deux langages.

II-C-1. Objective-C

Dans le fichier d'en-tête (.h)

 
Sélectionnez
  1. @interface PetiteVoiture : Voiture 
  2. @end 

II-C-2. Swift

 
Sélectionnez
  1. class PetiteVoiture : Voiture { 
  2. } 

III. Les méthodes

III-A. Déclaration de méthode

La déclaration de méthode est plus simple pour les débutants. Notez la façon dont le type de retour de la méthode est spécifié en Swift.

III-A-1. Objective-C

Dans le fichier d'en-tête (.h)

 
Sélectionnez
  1. - (int) getValeur; 

Dans le fichier d'implémentation (.m)

 
Sélectionnez
  1. - (int) getValeur 
  2. { 
  3.     return 50000; 
  4. } 

III-A-2. Swift

 
Sélectionnez
  1. func getValeur() -> Int { 
  2.     return 50000; 
  3. } 

III-B. Appeler une méthode

Souvent, les débutants ne savent pas quand utiliser les crochets ("[" et "]"). Swift abandonne les crochets pour l'appel de méthode et utilise une notation pointée comme pour appeler une propriété en Objective-C ("maClasse.maPropriete"). Notez les parenthèses pour l'appel de méthode dans l'exemple en Swift.

III-B-1. Objective-C

 
Sélectionnez
  1. PetiteVoiture *maVoiture = [[PetiteVoiture alloc] init]; 
  2. [maVoiture getValeur]; 

III-B-2. Swift

 
Sélectionnez
  1. Var maVoiture = PetiteVoiture() 
  2. maVoiture.getValeur() 

III-C. Déclarer une méthode avec plusieurs paramètres

En Swift , une méthode avec plusieurs paramètres est construite de la même manière qu'en Objective C ; plusieurs "label:nomParametre" à la suite pour autant de paramètres.

III-C-1. Objective-C

 
Sélectionnez
  1. - (void)changerHuile:(int)huile liquideTransmission:(int)liquide 
  2. { 
  3. } 

III-C-2. Swift

 
Sélectionnez
  1. func changerHuile(huile:Int, liquideTransmission:Int) 
  2. { 
  3. } 

III-D. Appeler une méthode avec plusieurs paramètres

III-D-1. Objective-C

 
Sélectionnez
  1. [maVoiture changerHuile:10 liquideTransmission:10]; 

III-D-2. Swift

 
Sélectionnez
  1. maVoiture.changerHuile(10, liquideTransmission:10); 

III-E. Surcharger une méthode

En Objective-C, vous pouvez surcharger une méthode de la superclasse en définissant une méthode avec la même signature dans la sous-classe. En Swift, il convient d'utiliser le mot-clé "override" pour définir de manière claire qu'il s'agit d'une surcharge de méthode.

III-E-1. Objective-C

Dans le fichier d'implémentation (.m)

 
Sélectionnez
  1. - (void) uneMethode 
  2. { 
  3.     [super uneMethode]; 
  4.     //Autres instructions de surcharge 
  5. } 

III-E-2. Swift

 
Sélectionnez
  1. override func uneMethode() 
  2. { 
  3.     super.uneMethode() 
  4.     //Autres instructions de surcharge 
  5. } 

IV. Propriétés

IV-A. Déclarer une propriété

La déclaration de propriétés en Swift est assez évidente : elles se déclarent de la même façon qu'une variable, la différence étant à quel endroit vous la déclarez.

En Swift, il est nécessaire d'attribuer une valeur à chaque propriété, que ce soit lors de la déclaration ou de l'initialisation.

IV-A-1. Objective-C

Dans le fichier d'implémentation (.m)

 
Sélectionnez
  1. @interface PetiteVoiture () 
  2. @property NSString *transmission; 
  3. @property int nombreSieges; 
  4. @end 
  5.  
  6. @implementation PetiteVoiture 
  7. - (id)init 
  8. { 
  9.     self = [super init]; 
  10.     if (self) 
  11.     { 
  12.         self.transmission = @"Automatique"; 
  13.         self.nombreSieges = 4; 
  14.     } 
  15.     return self; 
  16. } 
  17. @end 

IV-A-2. Swift

 
Sélectionnez
  1. class PetiteVoiture:Voiture { 
  2.     var transmission: String = "Automatique" 
  3.     var nombreSieges: Int 
  4.  
  5.     init() 
  6.     { 
  7.         self.nombreSieges = 4 
  8.         super.init() 
  9.     } 
  10. } 

IV-B. Surcharger les getters et setters

En Objective-C moderne, les getters et setters sont créés automatiquement, mais vous pouvez les surcharger. Ceci est également vrai en Swift. La syntaxe est plus visuelle, car elle est groupée avec la déclaration.

IV-B-1. Objective-C

 
Sélectionnez
  1. - (void)setTransmission:(NSString *)transmission 
  2. { 
  3.     _transmission = transmission; 
  4. } 
  5.  
  6. - (NSString *)transmission 
  7. { 
  8.     return _transmission; 
  9. } 

IV-B-2. Swift

 
Sélectionnez
  1. var transmission:String { 
  2.     get { 
  3.         return _transmission 
  4.     } 
  5.     set { 
  6.         _transmission = nouvelleValeur 
  7.     } 
  8. } 

V. Remerciements Developpez

Nous remercions, Chris Ching, de nous avoir aimablement autorisé à publier son article. Cet article est une traduction autorisée dont le texte original peut être trouvé sur codewithchris.com. Nous remercions aussi Askirkela pour sa traduction, LeBzul pour sa relecture technique ainsi que jacques_jean. pour sa relecture orthographique.

VI. Apprendre Swift à partir d'Objective-C

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2014 Chris Ching. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.