Apprendre Swift à partir d'Objective-C

Les conditions, les structures de contrôle et les collections

Chris Ching

Traducteur

Pierre-François Léon

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 et la deuxième partie de ce cours :

Apprendre Swift à partir d'Objective-C : Introduction

Apprendre Swift à partir d'Objective-C : Variables, classes, méthodes et propriétés

Les commentaires et les suggestions d'amélioration sont les bienvenus, alors, après votre lecture, n'hésitez pas. Commentez .

- Titre : Apprendre Swift à partir d'Objective-C

- Auteur : Chris Ching

- Traducteur : Pierre-François Léon

- Parution : 7 août 2014

- Licence : 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.

Sommaire

- I. Structure de contrôle

- I-A. Écrire un bloc if

- I-A-1. Objective-C

- I-A-2. Swift

- I-B. Écrire une instruction Switch

- I-C-1. Objective-C

- I-C-2. Swift

- II. Les boucles

- II-A. Écriture de boucles for

- II-A-1. Objective-C

- II-A-2. Swift

- II-B. Écrire une boucle while ou une boucle do while

- II-B-1. Objective-C

- II-B-2. Swift

- III. Les collections

- III-A. Déclaration d'un tableau

- III-A-1. Objective-C

- III-A-2. Swift

- III-B. Ajouter ou insérer des éléments dans un tableau

- III-B-1. Objective-C

- III-B-2. Swift

- III-C. Déclaration d'un dictionnaire

- III-C-1. Objective-C

- III-C-2. Swift

- III-D. Ajouter et assigner des éléments à un dictionnaire

- III-D-1. Objective-C

- III-D-2. Swift

- IV. Que faire ensuite ?

- V. Remerciements Developpez

- VI. Apprendre Swift à partir d'Objective-C

I - Structure de contrôle

I-A - Écrire un bloc if

I-A-1 - Objective-C

Notez que, dans le second exemple, l'instruction « if » teste si la variable « aString » est vide.

int score = 25;
if (score > 25) {
}

NSString *aString;
if (aString) {
}

I-A-2 - Swift

En Swift, nous devons noter que la variable a une valeur optionnelle à l'aide d'un point d'interrogation. Cela veut dire qu'elle peut être vide. Ensuite, nous utilisons l'instruction « let » et un nom afin de tester si la variable « aString » est vide.

var score = 25
if score > 25 {
}

var aString: String?
if let myString = aString {
}

I-B - Écrire une instruction Switch

En Swift, l'instruction « switch » est bien plus flexible et peut-être utilisée avec différents types d'opérateurs de comparaisons. En Objective-C, l'instruction « switch » est limitée aux cas d'entiers.

I-C-1 - Objective-C

int numberOfPeople = 1;

switch (numberOfPeople)
{
case 1:
// code for this case
break;
case 2:
// code for this case
break;
default:
// code for this case
break;
}

I-C-2 - Swift

Notez que l'instruction « break » n'est plus nécessaire !

var numberOfPeople = 1

switch numberOfPeople {
case 1:
// code for this case
case 2:
// code for this case
default:
// code for this case
}

var carMake = "Toyota"

switch carMake {
case "Toyota":
// code for this case
case "Honda":
// code for this case
case "Nissan", "Subaru":
// code for this case
default:
// code for this case
}

II - Les boucles

II-A - Écriture de boucles for

II-A-1 - Objective-C

for (int i = 0; i < 10; i++) {
}

NSArray *array = @[@"item 1", @"item 2"];
for (NSString *item in array) {
}

II-A-2 - Swift

Observez le second exemple écrit en Swift. Il est équivalent au premier exemple. La notation « ... » représente un intervalle.

for var i = 0; i < 10; i++ {
}

for i in 0...10 {
}

var array = ["item 1", "item 2"]
for item in array {
}

II-B - Écrire une boucle while ou une boucle do while

La syntaxe de la boucle « while » est presque identique à celle d'Objective-C (celle de Swift n'utilise pas de parenthèse).

II-B-1 - Objective-C

int count = 1;
while (count < 10) {
count++;
}

do
{
count++;
} while (count < 10);

II-B-2 - Swift

var count = 1
while count < 10 {
count++
}

do
{
count++
} while count < 10

III - Les collections

III-A - Déclaration d'un tableau

La déclaration de tableau en Objective-C se fait à l'aide des classes NSArray et NSMutableArray et chaque tableau contient un mélange d'objets provenant de différents types de classes.

III-A-1 - Objective-C

NSMutableArray *myArray = [[NSMutableArray alloc] init];

NSMutableArray *myArray2 = [@[@"item 1", @"item 2"] mutableCopy];

III-A-2 - Swift

Notez que dans le second exemple de ce qui suit, nous ne spécifions pas que la variable est de type tableau de chaînes de caractères, parce qu'il est déduit à partir du tableau que nous lui assignons, À partir des éléments d'un tableau, Swift peut déduire que la variable est un tableau et qu'il contient des objets de type chaînes de caractères.

Même dans le premier exemple, nous n'aurions pas besoin de spécifier le type de la variable, car il peut être déduit à partir de la valeur que nous lui assignons.

var myArray:[String] = [String]()

var myArray2 = ["item 1", "item 2"]

III-B - Ajouter ou insérer des éléments dans un tableau

III-B-1 - Objective-C

myArray[0] = @"item 1";

[myArray addObject:@"item 3"];

[myArray insertObject:@"item 4" atIndex:1];

III-B-2 - Swift

Observez que dans l'exemple qui suit vous pouvez utiliser l'opérateur “+=” pour ajouter des objets dans le tableau.

myArray[0] = "item 1"

myArray.append("item 3")
myArray += "item 3"

myArray.insert("item 4", atIndex:1)

III-C - Déclaration d'un dictionnaire

Comme les tableaux en Swift, les dictionnaires ont besoin d'être typés et pour cela, vous devez définir les types de classes que le dictionnaire va utiliser pour ses clefs et ses valeurs.

III-C-1 - Objective-C

NSMutableDictionary *myDictionary = [[NSMutableDictionary alloc] init];

NSMutableDictionary *myDictionary2 = [@{@"key":@"object", @"key2":@"object 2"} mutableCopy];

III-C-2 - Swift

var myDictionary = Dictionary<String, String>()

var myDictionary2 = ["key":"object", "key2":"object 2"]

III-D - Ajouter et assigner des éléments à un dictionnaire

L'assignation d'un élément dans un dictionnaire en Swift et en Objective-C est très similaire,

III-D-1 - Objective-C

[myDictionary setObject:@"object 3" forKey:@"key3"];

myDictionary[@"key2"] = @"object 4";

III-D-2 - Swift

Notez qu'en Swift, vous pouvez utiliser la même syntaxe pour ajouter un couple clef/valeur ou réassigner un élément pour une valeur de clef.

myDictionary["key3"] = "object 3"

myDictionary["key2"] = "object 4"

IV - Que faire ensuite ?

Dans le prochain article de la série, nous allons nous intéresser aux protocoles et à la délégation ! Restez branché !

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 Sirus64 pour sa traduction, LeBzul pour sa relecture technique ainsi que jacques_jean. pour sa relecture orthographique.

VI - Apprendre Swift à partir d'Objective-C

Retrouvez toute la série "Apprendre Swift à partir d'Objective C"