Mémo ou CheatSheet Swift :
Variables et constantes
nil | Absence de valeur pour une variable ou constante de type optionnel |
Optional |
|
Liaison facultative |
|
Gestion des erreurs
throws | Sert à indiquer qu'une fonction peut renvoyer une erreur
|
do try catch |
Une méthode peut renvoyer des erreurs, donc pour l'appeler utiliser le mot clé try. Si la moindre erreur survient l'exécution du block s'arrête et la structure do-catch prend le relais.
|
assert | Dans l'exemple ci-dessous, l'exécution du code s'arrête si la valeur de a est négative.
|
Boucles et conditions
in | Parcourt les éléments d'une collection (tableau, ensemble, dictionnaire)
|
continue | L'instruction continue indique à une boucle d'arrêter ce qu'elle est en train de faire et de recommencer au début de l'itération suivante dans la boucle.
|
break | L' instruction break met immédiatement fin à l'exécution d'une instruction de flux de contrôle entière. |
falltrough | L'instruction fallthrough fait suivre au cas suivant
|
guard | Une instruction guard, comme une instruction if, exécute des instructions en fonction de la valeur booléenne d'une expression. Vous utilisez une instruction guard pour exiger qu'une condition soit vraie pour que le code après l'instruction guard soit exécuté. Contrairement à une instruction if, une instruction guard a toujours une clause else.
|
aviable | Vous utilisez une condition de disponibilité dans une instruction if ou guard pour exécuter conditionnellement un bloc de code, selon que les API que vous souhaitez utiliser sont disponibles au moment de l'exécution.
|
Fonctions
inout | Les paramètres de fonction étant des constantes par défaut, pour qu'un fonction modifie la valeur d'un paramètre, utilisez le paramètre inout.
Placez une esperluette (&) avant le nom d'une variable :
|
Les closures
in |
|
@escaping | Une façon dont une closure peut s'échapper est d'être stockée dans une variable définie en dehors de la fonction.
|
@autoclosure | Une @autoclosure vous permet de retarder l'évaluation, car le code à l'intérieur n'est pas exécuté tant que vous n'appelez pas la closure.
|
Les énumérations
CaseIterable / allCases |
Pour l'itération des cas d'une énumération
|
indirect | Une énumération récursive est une énumération qui a une autre instance de l'énumération comme valeur associée pour un ou plusieurs des cas d'énumération.
|
Classe et Structure
lazy | Une propriété stockée différée (ou paresseuse lazy) est une propriété dont la valeur initiale n'est calculée qu'à la première utilisation. Toujours déclarer une propriété différée en tant que variable.
|
get / set | Action pour récupérer la valeur contenue get Action pour modifier la valeur contenue set
|
willset / didset |
Deux méthodes pour observer des propriétés stockées : willSet : la méthode est appelée juste avant la modification didSet : la méthode est appelée juste après la modification
|
private | Le mot-clé private indique qu'une propriété (variable) n'est disponible que dans la structure auquelle elle appartient (Classe, énumération, structure)
|
$variable | Retour d'une valeur projetée |
static | S'applique à une propriété ou une méthode pour y accéder directement depuis son type (classe, structure ou énumération) sans passer par une instance :
|
self | Permet d'accéder à une propriété ou une méthode appartenant à une classe, une structure ou une énumération :
|
mutating | Permet de modifier une propriété à partir d'une fonction qui appartient à une structure ou à une énumération
|
override | Permet de ré-écrire une méthode, une propriété ou un indice d'une classe mère à partir de sa classe fille :
|
super | Permet d'accèder à une méthode ou propriété d'une classe mère depuis sa classe fille :
|
final | Empêche la modification override d'une classe, d'une propriété ou d'une fonction :
|
convenience | Permet de customiser l'initialiseur d'une classe fille |
required | Indique que chaque sous-classe de la classe doit implémenter cet initialiseur
|
deinit | Effectue un nettoyage manuel lorsque vos instances sont désallouées |
as! | Si je suis absolument certain du TYPE de variable
|
as? | Pour accéder à une variable d'un certain TYPE
|
is | Pour juste savoir si une variable est d'un certain TYPE
|