Problème Playground

Bonsoir,

Version Xcode 10.1 avec Mac os High Sierra

J’ai un problème concernant Playground comme indiquer sur l’image ci-dessous avec un premier message : The Playground could not continue running because the playground source did not compile successfully et j’ai un autre message d’erreur qui me dit : error: Swift_4_cours.playground:6:6: error: consecutive statements on a line must be separated by ';'
print(resultat)
^
;

Salut,
Ta variable secondNombre n’est pas initialisée.

C’est ton message d’erreur en anglais bien sûr

Variable « secondNombre » used before being initialized.
Traduction :
Variable « secondNombre » est utilisée avant d’être initialisée.

Donc, tu dois lui donner une valeur (l’initier) avant de l’utiliser.

Salut,

J’ai toujours le même problème tout en suivant la video : Les variables - partie 1 pour apprendre à créer des apps pour iPhone. J’avais dû réinstaller Xcode pour voir si cela venait de celle-ci.

Je ne vois pas mon erreur lors de la saisie, j’aimerais bien passer à la video suivante pour continuer la formation

Ton erreur pour moi suivant la capture d’écran que tu as fournie.

C’est que ta variable « secondNombre » n’a pas de valeur. Pour rappel le code ce lis de haut en bas donc, tu as déclaré une variable « premierNombre » de type Int (ligne 5) puis, tu lui donnes une valeur ligne 6 puis, tu modifies sa valeur ligne 8 jusque là ça va.

Après tu déclares une variable « secondNombre » de type Int (ligne 10) et la il y a problème, car la ligne suivante tu utilises cette variable « secondNombre » sans lui avoir donné de valeur.

Voici le code du cours si, une copier/coller ne fonctionne pas c’est pas le problème vient d’ailleurs.

var premierNombre : Int
premierNombre = 8

var secondNombre : Int

var résultat = premierNombre + secondNombre

Voici les parties importantes de ton code.

La variable premierNombre est créée et sa valeur définit à 8
La variable secondNombre est créée, mais sa valeur n’est PAS DEFINIE.

La plupart des anciens langages estiment qu’une variable contient 0 à sa création. Ce n’est pas le cas de Swift qui pense qu’une variable dont le contenu n’est pas défini est une ERREUR !! (et il a bien raison).

Pour régler le problème, il suffit de mettre une valeur à secondNombre. Par exemple :

var secondNombre = 10

AVANT L’addition, évidement !

var premierNombre : Int
premierNombre = 8

var secondNombre : Int
secondNombre = 10   // <=  Définition du contenu de la variable

var résultat = premierNombre + secondNombre

Merci pour tout vos conseils et vos éclaircissement.

J’ai trouvé la solution comme vous pourrez le constater en image. Car en effectuant la même méthode que sur la video : Les variables - partie 1. Ne fonctionne pas avec mon Xcode10.1.

Les vidéos sont souvent enregistrées lors de la sortie des premières betas de XCode/Swift (mes étudiants sont pressés d’avoir les nouveautés :grin:) et il est possible que Apple ait ensuite fait de légers changements à la syntaxe ou au comportement dans les mois qui ont suivi.
Essayez au maximum de prendre la même version de XCode que le cours pour limiter cet effet : Xcode 10 pour le cours iOS 12, et Xcode 11 pour le cours iOS 13

Happy coding!

@mbritto ne t’inquiète pas, le code dans la vidéo est bon, pour que ça ne fonctionne pas avec du code aussi simple, ça ne peut que venir de la personne derrière l’écran ou de playground lui-même, car on le sait un moment c’était catastrophique.

@Aimeric ton code fonction c’est vrai, mais je te conseillerais de regarder à nouveau la vidéo et de faire bien attention au détail, car tu sauras qu’une virgule peut ne plus faire fonctionner ton code.

Je te dis ça, car je ne sais pas si tu as très bien compris ce chapitre.

Maxime explique les différentes façons de déclarer et d’initier une variable et je vois qu’a la ligne 2 et ligne 3, tu inities deux fois la même valeur à la variable premierNombre, ça fonctionne c’est vrai, mais ça ne sert à rien.

Bonjour,

A force de persévérance et de réflexion pour arriver au même résultat présente dans la video : Les variables - partie 1, il faut absolument Xcode 9 pour arriver au même résultat car en ayant essayer avec deux version 10 et 10.1 sous Mac OS High Sierra.

Conseil mettre la même version présente dans la video afin de ne pas avoir des erreurs !

Voici en image le résultat avec la bonne version de Xcode :

Tu initialises deux fois la variable premierNombre, avec la valeur 8, puis la valeur 9. Cela ne sert à rien, l’écriture dans une variable efface son contenu précédent.

Tu peux retirer du code la ligne :

premierNombre = 8

Pas sur la dernière capture qu’il a fait sur Xcode 9 alors, que le cours est sur Xcode 10 et que le code de son post d’avant fonctionne bien sous Xcode 10 et qu’il y a juste cette ligne en trop.

C’est pour cette raison que je lui ai recommandé de regarder à nouveau la vidéo.
D’ailleurs, je lui ai aussi recommandé de faire un copier/coller du code et si, effectivement ça ne fonctionne pas sur Xcode 10 c’est bien le logiciel qui à un problème.

Il est possible que certaines vidéos du cours soient celles de l’année précédente (iOS 11 et Swift 4). J’avais essayé de traquer tous les changements nécessaires pour refaire les vidéos qui en avait besoin mais celle-ci est peut être passée entre les mailles du filet.
Pour le prochain iOS (14) j’ai prévu de refaire entièrement le cours pour éviter ce genre de soucis

Pour clore le débat sur la version d’Xcode.

J’ai testé sur Xcode 10.3 et bien sûr sur Xcode 11.4 dont j’avais fait ma première capture.

Dans les deux cas, ça fonctionne la preuve en image.