IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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.
2.
int highScore;
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.
2.
var highScore: Int
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.
2.
highScore = 1000;
nomJoueur = @"Joe Chan";

I-B-2. Swift▲

 
Sélectionnez
1.
2.
highScore = 1000
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.
2.
NSString *const couleurCiel = @"Blue"
int const joursDanslAnnee = 365;

I-C-2. Swift▲

 
Sélectionnez
1.
2.
let couleurCiel = "Blue"
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.
2.
@interface CustomClass : NSObject
@end

Fichier d'implémentation (.m)

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

II-A-2. Swift▲

 
Sélectionnez
1.
2.
class CustomClass {
}

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.
2.
CustomClass *instance = [[CustomClass alloc] init];
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.
2.
@interface PetiteVoiture : Voiture
@end

II-C-2. Swift▲

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

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.
2.
3.
4.
- (int) getValeur
{
    return 50000;
}

III-A-2. Swift▲

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

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.
2.
PetiteVoiture *maVoiture = [[PetiteVoiture alloc] init];
[maVoiture getValeur];

III-B-2. Swift▲

 
Sélectionnez
1.
2.
Var maVoiture = PetiteVoiture()
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.
2.
3.
- (void)changerHuile:(int)huile liquideTransmission:(int)liquide
{
}

III-C-2. Swift▲

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

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.
2.
3.
4.
5.
- (void) uneMethode
{
    [super uneMethode];
    //Autres instructions de surcharge
}

III-E-2. Swift▲

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

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.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
@interface PetiteVoiture ()
@property NSString *transmission;
@property int nombreSieges;
@end

@implementation PetiteVoiture
- (id)init
{
    self = [super init];
    if (self)
    {
        self.transmission = @"Automatique";
        self.nombreSieges = 4;
    }
    return self;
}
@end

IV-A-2. Swift▲

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

    init()
    {
        self.nombreSieges = 4
        super.init()
    }
}

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.
2.
3.
4.
5.
6.
7.
8.
9.
- (void)setTransmission:(NSString *)transmission
{
    _transmission = transmission;
}

- (NSString *)transmission
{
    return _transmission;
}

IV-B-2. Swift▲

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

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 ni 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.