Hello,
Il y a peut-être quelque chose que j’ai mal compris, mais je ne sais jamais vraiment quand je dois mettre self.uilabel.text par exemple ou uilabel.text.
Ma question est plus générale que les Outlets, elle se pose aussi pour les variables.
Si vous savez m’expliquer quand mettre ou ne pas mettre self, ça serait cool
Merci.
En fait le self
fait référence à l’objet en train d’exécuter la fonction dans laquelle tu es.
Donc pour tes outlets, le self
fait référence à ton ViewController.
Le fait de mettre ou pas les self
avant chaque membre de tes objets (outlets, variables, fonctions, etc.) dépend de ta préférence perso. Ce n’est pas obligatoire car le compilateur peut deviner que tu fais référence à un membre de cet objet mais ça aide souvent à la lisibilité.
Il y a 2 cas où c’est obligatoire :
- Dans une closure
- Si tu as une variable locale qui a le même nom que la variable membre de ta classe
Dans le second cas, si tu n’utilises pas le self
il prendra la variable locale en priorité, en revanche si tu précise explicitement le self.taVariable
alors il choisira celle membre.
Exemple :
class Demo {
var a = 10
func f1() {
let a = 20
print (a)
print (self.a)
}
L’affichage de f1() sera 20 puis 10.
Merci @mbritto,
Je comprends mieux maintenant.
Donc comme je soigne toujours le fait de ne pas appeler deux variables avec le même nom dans un même fichier, je dois pouvoir me passer du self. A part dans les closures donc