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.
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.
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▲
2.
highScore =
1000
;
nomJoueur =
@"Joe Chan"
;
I-B-2. Swift▲
2.
highScore
=
1000
nomJoueur
=
"Joe Chan"
I-C. Déclarer et assigner des constantes▲
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)
2.
@interface
CustomClass : NSObject
@end
Fichier d'implémentation (.m)
2.
@implementation
CustomClass
@end
II-A-2. Swift▲
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▲
2.
CustomClass *
instance =
[[CustomClass alloc] init];
CustomClass *
secondInstance =
[CustomClass new];
II-B-2. Swift▲
var
instance
=
CustomClass
()
II-C. L'héritage▲
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)
-
(
int
) getValeur;
Dans le fichier d'implémentation (.m)
2.
3.
4.
-
(
int
) getValeur
{
return
50000
;
}
III-A-2. Swift▲
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▲
2.
PetiteVoiture *
maVoiture =
[[PetiteVoiture alloc] init];
[maVoiture getValeur];
III-B-2. Swift▲
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▲
2.
3.
-
(
void
)changerHuile:(
int
)huile liquideTransmission:(
int
)liquide
{
}
III-C-2. Swift▲
2.
3.
func
changerHuile
(
huile
:
Int
,
liquideTransmission
:
Int
)
{
}
III-D. Appeler une méthode avec plusieurs paramètres▲
III-D-1. Objective-C▲
[maVoiture changerHuile:10
liquideTransmission:10
];
III-D-2. Swift▲
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)
2.
3.
4.
5.
-
(
void
) uneMethode
{
[super
uneMethode];
//Autres instructions de surcharge
}
III-E-2. Swift▲
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)
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▲
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▲
2.
3.
4.
5.
6.
7.
8.
9.
-
(
void
)setTransmission:(
NSString
*
)transmission
{
_transmission =
transmission;
}
-
(
NSString
*
)transmission
{
return
_transmission;
}
IV-B-2. Swift▲
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.