{RESOLU} Erreur AppDelegate

Bonjour, Bonsoir (ça dépend de quand vous me lirez !)

Premièrement, je tiens a remercier Purple Giraffe et @mbritto pour le contenu de ce cours. Il est bien plus simple que les cours a lire, ou l’on peut se perdre facilement.

J’en suis au chapitre ou nous créeons une vraie application, qui répète ce que nous dit notre utilisateur.

Avant même d’avoir entendu Maxime demander de faire le reste du code en solo, je m’y suis mis. J’ai voulut tester mon code pour vérifier que tout allait bien, mais je suis tombé sur un os. L’application a complétement crashé, et je ne suis pas sur que ça vienne de mes tentatives.

Je vous met un screen, bien plus éloquent que mille mots.

Je ne sais malheureusement pas comment régler ce problème. J’ai voulut tenter quelque chose de différent de ce que propose Maxime dans la correction, mais je ne sais même pas si ça marche étant donné que l’application ne se lance même pas sur le simulateur !

Merci à vous pour vos réponses futures et au plaisir de pouvoir vous faire découvrir mes futures applications !

Hirder

Salut,

Est-ce que tu utilises les storyboard ?

Si oui, as-tu supprimé ou modifié un lien (outlet) entre ton code et le storyboard ?

Après un test de mon côté, c’est bien ça.

Ci-dessous, la démarche pour régler le problème. À l’état 3, tu dois supprimer l’élément avec le warning.
La clé (key) est écrite dans le message d’erreur en bas. Pour toi, c’est « userField ».

1 J'aime

Oui, effectivement, je l’utilise, comme indiqué dans le cours.

Merci pour ta réponse rapide. Ça a effectivement régler le problème. Cependant, je ne comprend pas la cause du problème. Qu’est ce qui a causé ce soucis ?

De plus, maintenant que l’application se lance correctement, j’ai un nouveau soucis, lorsque j’appuie sur mon bouton « répète ». Ca fait planter l’application, comme tout à l’heure.

Tu as le même problème, mais cette fois avec IBAction.

Le problème c’est que tu as supprimé complètement la ligne de l’Outlet ou modifié son nom.

Vu, que tu débutes, je pense plus, que tu as modifié le nom.

Donc là, tu as modifié le IBAction qui s’appelait « repeatButonTouched »

Pour régler le problème c’est toujours au même endroit, sauf que là, tu as le choix ou tu corriges le nom par l’ancien dans ton code (après func de la ligne IBAction), ou tu supprimes l’élément avec le warning et tu relies ton code avec l’espace graphique avec les petites boules (entouré en rouge sur la capture).

Comme tu peux le voir, sur la capture j’ai enlevé le « o » de « button » et cela suffit pour faire planter l’app.

1 J'aime

J’ai compris d’ou vient l’erreur en fait.

J’ai créer mon lien depuis l’interface graphique, puis je l’ai effacé, mais le lien était toujours la. Si je ne l’efface pas aussi dans le paramétrage du button, alors il va se dire qu’il y a un problème, et ne pas savoir lequel utilisé (surtout si c’est le plus ancien qui est utilisé sans présence dans le code).

C’est bon ?

Oui, car Xcode ne supprime pas les deux, il faut le faire manuellement dans la partie graphique (storyboard) et dans le code.

Donc, si tu as un warning ou je t’ai dit, ton app plantera.

Quelle connerie d’ailleurs qu’ils n’aient jamais géré ça, ça n’apporte que des problèmes.

3 J'aimes

Ok, je ferais gaffe quand je supprimerai des lignes de codes. Au moins maintenant je comprend pourquoi ca plantait.

Il faut le faire remonter à Apple, mais pas sur qu’ils répondent.

Effectivement c’est un problème courant lorsqu’on débute. Une fois qu’on s’est fait mordre une fois ou deux on développe des automatismes pour éviter ce soucis.
L’avantage c’est que ça apprend à lire les messages d’erreur :grin:

Avec plaisir! Je suis content que le cours te plaise et te soit utile :+1:

1 J'aime