Bonjour ! Je suis très débutant dans le domaine de le programmation et j’aimerais savoir si quelqu’un pourrais m’expliquer la logique ou le cheminement en détail, du code de l’app 1 (bloc notes)?
@IBAction func addNoteButtonTouched() {
let typedText: String? = self.textField.text
if typedText != nil {
var allNotesText: String = self.noteView.text
if allNotesText.characters.count > 0 {
allNotesText = allNotesText + “\n”
}
allNotesText = allNotesText + typedText!
self.noteView.text = allNotesText
self.textField.text = ""
J’ai compris toutes les vidéos précédentes, mais j’ai encore un peu de mal a comprendre ce code,
j’aimerais par la suite l’améliorer, numéroter chaque notes par exemple, mais pour le moment je ne vois pas trop où je pourrais placer l’incrémentation étant donné que le code n’est pas encore tout a fait clair pour moi…
Alors je suis aussi un débutant, mais je vais essayer de t’expliquer le code
@IBAction func addNoteButtonTouched() { <- Ici tu indique ta function lorsque tu appuis sur le bouton.
let typedText: String? = self.textField.text **<- Ici tu créais une constante qui récupère le contenu de textField.text, le point d'interrogation c'est dans le cas ou il n'y a rien à récupéré.**
if typedText != nil { **<- Si typedText est différent de nul (donc typedText à un contenu)**
var allNotesText: String = self.noteView.text **<- On créer une variable et on récupère le contenu de notre noteView.text dans allNotesText**
if allNotesText.characters.count > 0 { **<- S'il y a au moins un caractère dans notre allNotesText alors...**
allNotesText = allNotesText + "\n" **<- On reprend son contenu et on ajoute un retour à la ligne**
}
allNotesText = allNotesText + typedText! **<- On reprend notre variable allNotesText dans lequel on y met le contenu du allNotesText + le contenu qu'on à taper dans typedText**
self.noteView.text = allNotesText **<- Ici on met le contenu de notre variable dans noteView.Text**
self.textField.text = "" **<- Puis pour finir on vide le champs textField.text**
}
}
J’espère avoir pu t’expliquer au mieux, si tu as des questions hésite pas !
Bonjour sluba, je suis en train de jeter un petit coup d’oeil au code et à l’explication, pourrais tu me dire pourquoi on a crée une constante typedText et pas une variable à la place? étant donné que le contenu de typedText va changer à chaque nouvelle saisie ca ne devrais pas être une variable?
En fait si tu veu il n’est pas necessaire que typeText soit variable car en fait elle n’est affecter qu’une fois, et dès que la fonction se termine le system la supprime de la mémoire. Donc du coup quand tu reclique le system va la recrée , la réafecter et ensuite la détruire une foi la fonction terminer etc etc…
En effet, pour rattacher la théorie à la pratique, il faut savoir que chaque variable locale créée sera supprimée à la fin de son bloc. Un bloc est définit par 2 accolades.
La variable typedText est créée dans le bloc de la fonction (entre la première et la dernière accolade), ce qui veut dire qu’à chaque appel de la fonction, on va créer une nouvelle variable typedText, s’en servir et à la fin de chaque appel, la variable sera supprimée.
Lorsqu’on fait une nouvelle saisie, on rappelle la fonction, donc ce sera à chaque fois une nouvelle variable.
Pour une saisie, cette variable ne change donc jamais, c’est pour cela qu’on crée une constante
Merci pour votre réponse, j’aurais une autre petite question, pouvez vous m’expliquer pourquoi il faut crée des variables qui vont récupérer le texte qui se trouve dans “self.textfield.text” et dans “self.noteView.text”?
Ne peut on pas directement utiliser le texte qui viens de ces 2 éléments?
les deux manière fonctionne mais, c’est mieux de le faire en le mettent dans une variable ou constante car, cela t’évite de l’écrire a chaque fois que tu utilise le textfielf.text donc, des chances moins important de te tromper l’or de la saisie.
Il y a aussi un autre avantage c’est de pouvoir l’utiliser dans une autre application facilement car, tu as juste à le changer à cette endroit et non partout.