Un bug dans ma première application

Bonjour,

Comme dit dans le titre j’ai un bug dans mon aplication, je ne trouve aucune solution pour palier au problème du coup je vient vers vous, voici mon code :
`
import UIKit

class ViewController: UIViewController {
@IBOutlet weak var repeatLabel: UILabel!
@IBOutlet weak var userTextField: UITextField!

@IBAction func repeatButtonTouched() {
    print ("Bouton répéte toucher par l'utilisateur")
    repeatLabel.text = userTextField.text  Thread 1: **Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value**
    userTextField.text = ""
}


override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

}

`

La valeur que tu as dans ton TextField est nulle donc le label ne peut pas prendre cette valeur.
Il faut que tu mettes une condition qui vérifie que la valeur n’est pas nulle avant d’aller écrire dans le label.

Quelque chose comme :
if let textFieldValue = userTextField.text {
repeatLabel.text = textFieldValue
}
userTextField.text = ""

Bah le truc c’est que maxime britto a exactement le même code que moi et lui ça marche très bien et il a pas rajouter de constante, mais si on n’utilise ton code ça donnerais sa du coup ?

`
import UIKit

class ViewController: UIViewController {
@IBOutlet weak var repeatLabel: UILabel!
@IBOutlet weak var userTextField: UITextField!

@IBAction func repeatButtonTouched() {
    print ("Bouton répéte toucher par l'utilisateur")
    if let textFieldValue = userTextField.text {
    repeatLabel.text = textFieldValue
    }
    userTextField.text = ""
}


override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

}
`

Ah ok, je ne pensais pas que ça venait du cours.
Oui, ça donnerait ça avec mon code mais ça devrait fonctionner avec celui de Maxime aussi.
Est-ce que tu n’as pas renommé le TextField entre temps ? Si tu cliques sur le TextField et sur le panneau latéral à droite tu cliques sur « Show the Connections inspector », est-ce que tu retrouves bien ton outlet ?
46

Oui je croit que je les bien
23

Nope, dans Referecing Outlets, tu devrais avoir ton TextField et ton Label.

Essaye de recréer un autre TextField et nomme le userTextField2, lie le avec ton code de la même manière et change ton code pour mettre userTextField2 au lieu de userTextField dans ton code.

Si tu as toujours le problème, c’est qu’il y a une étape que tu ne fais pas.

Ça ne marche pas, je vais recommencer avec un new project merci pour ton aide quand même :slight_smile:

Avec plaisir, redis moi si tu as réussi au final.

C’est bon j’ai réussi pour tout ceux qu’il veulent savoir si vous avez le même problème ne surtout pas changer le nom de votre outlet après avoir connecter celui ci, c’est ce que tu m’avait dit de faire merci :slight_smile: voila j’espère que ça en aideras certain :slight_smile:

Est-ce que tu n’as pas renommé le TextField entre temps ?

C’est pour ça que je t’avais demandé ça :wink:

2 J'aimes