SafetyFirst - Outlets et code fonctionnel

Bonjour à toutes et à tous ami(e)s codeur(euse)s,

Je tente actuellement de maitriser toutes les subtilités du code de l’app SafetyFirst. Dans l’ensemble, je trouve tout ça plutôt logique, clair et “évident” même si, seul devant une page blanche, je ne suis pas du tout certain de pouvoir m’en sortir… :slightly_frowning_face::slightly_frowning_face:

Bref, il y a tout de même un point que je n’arrive pas à comprendre dans le chapitre Outlets et code fonctionnel. il s’agit de la fonction ci-dessous. Je ne comprends pas sa structure, son objet. Pourquoi mettre en paramètre credentials:Credentials ? et pourquoi stipuler dans le corps de la fonction _credentials = credentials ?

J’avoues être un peu perdu au milieu de toutes ces variables. J’ai beau me repasser la vidéo en boucle, je n’arrive pas à maitriser cette fonction. Peut-être avec d’autres mots, cela m’aiderait…

func setCredentials(_ credentials:Credentials) {
** _credentials = credentials**
}

Merci par avance à tous pour vos réponses

Bonjour,
pour faire simple la fonction setCredentials agit comme setter (ou muttateur).
elle permettra de modifier une variable d’instance privé depuis l’extérieur de la classe.

La propriété _credentials est défini comme PRIVATE ce qui veux dire quelle ne peut être utiliser que dans la classe si l’on a pas créer de getter et de setter

func setCredentials(_ credentials:Credentials) {
_credentials = credentials
}

l’idée derrière c’est de protégé au maximum les droits de modifier et de obtenir la variable privé de l’extérieur de la classe.

Un setter te permet de faire des vérifications avant d’affecter une nouvelle valeur à la variable par exemple tu aurais pu faire un quelque chose comme ça :

func setCredentials(_ credentials:Credentials**?**) {
   if credentials != nil {
   _credentials = credentials
}

}

ici je vérifie que je ne lui envoie jamais nil

si tu veux en savoir plus il faut que tu fasses des recherches sur la porté des variables ainsi que sur getter et setter.

Damien