Console inopérante


#1

Bonsoir,

Je n’avais rien fait depuis des mois, et j’ai voulu récemment me remettre à l’initiation XCode/Swift 4.2, avec le cours « Créer des apps pour iPhone et iPad ». J’avais encore XCode 9, et Mac OS 10.13.5, qui n’était pas compatible avec XCode 10.1 (il fallait Mac OS 10.13.6 mini).

J’en ai profité pour passer à Mojave, et j’ai ensuite eu du mal à installer XCode. Je suis allé sur la page Downloads de developer.apple.com, et le chargement a coincé juste avant la fin, car il ne me restait que 24 Go sur le disque et c’était insuffisant. Je suis passé par la version .xip et j’ai enfin réussi à installer XCode.

Je suis reparti du début du cours pour voir s’il y avait des changements par rapport aux précédentes versions de XCode et Swift

Mais arrivé à la première partie consacrée aux variables (playgroound), j’ai constaté que rien ne s’affichait dans la colonne de droite, ni dans la console. La video de Maxime a été réalisée avec une Beta, et il indiquait que l’absence de texte dans la colonne de droite était un bug lié à la Beta, et qu’il suffisait de quitter et relancer XCode.

La version que j’ai n’est pas une Beta, et j’ai essayé de nombreuses choses sans succès :

J’ai quitté puis relancé XCode, comme indiqué. À la réouverture du playground, le message “Launching simulator” apparaît brièvement, mais rien n’apparaît pour autant, ni à droite, ni dans la console.
J’ai recommencé en redémarrant le Mac
J’ai jeté XCode, et l’ai réinstallé, toujours à partir de Xcode_10.1.xip
J’ai à nouveau jeté XCode, fait de la place sur le disque, téléchargé XCode directement de la page Downloads, cette fois sans passer par un fichier .Xip.

Et malgré toutes ces manips, rien ne s’affiche dans la colonne de droite, ni dans la console. Pas non plus de code erreur.

Voici mon code, rien de compliqué :

//* Test console

var premierNombre : Int
premierNombre = 8

print(premierNombre)
var secondNombre = 12

var resultat : Int
resultat = premierNombre * secondNombre

print(resultat)

Quelqu’un a-t-il une idée ?


#2

Hello @Bigalo

De mon côté, pour que xCode compile et affiche les résultats dans la colonne de droite, je dois cliquer sur le bouton “play” qui se trouve dans la colonne de gauche de l’écran, juste en face de la ligne où je veux compiler (voir photo).

Pour ce qui est de xCode, normalement, tu peux le trouver sur l’AppStore (j’ai fais une clean install de Mojave hier, et je n’ai pas eu de soucis pour installer l’IDE depuis l’AppStore).

Bonne journée,

Alexandre


#3

Merci pour la découverte du bouton Play !

Pour l’installation de l’IDE, j’avais précisé que le problème provenait de manque de place sur mon disque. Ce problème a été résolu.

Malheureusement, je n’arrive toujours pas à obtenir le moindre affichage dans la colonne de droite : quand je clique sur Play, il se passe 4 choses :

1 - Un message s’affiche au-dessus du code disant que la compilation a échoué, « The playground could not continue running because the playground source did not compile succeefully ». Pourtant le code est particulièrement simple. Contrairement à vous, je n’ai pas fait appel à UIKit, car il n’y a pas d’interface utilisateur.

2 - La colonne de droite où devraient apparaître les valeurs reste vide, ce qui est logique puisque la compilation a échoué.

3 - Par contre progrès relatif par rapport à hier soir, la console affiche un message d’erreur :

error: Calculette.playground:3:1: error: variables currently must have an initial value when entered at the top level of the REPL
var premierNombre : Int

Aucun changement en remplaçant

var premierNombre : Int
premierNombre = 8

Par

var premierNombre : Int = 8
// premierNombre = 8

4 - Le volet de droite, initialement masqué, s’affiche.

Par ailleurs, quand j’essaie de quitter XCode, j’ai parfois un blocage : la fenêtre du playground reste alors à l’écran, avec le Texte « No Editor », et la commande « Quit XCode » devient grisée. Je suis alors obligé d’utiliser le moniteur d’activité pour forcer XCode à quitter.

La seule hypothèse qui me vient à l’esprit est que des fichiers correspondant à des versions antérieures de XCode seraient la cause des problèmes rencontrés. Qu’en pensez-vous ?

Croyez-vous que prendre un RdV dans un Genius bar puisse être utile ?


#4

Mmh, étonnant comme erreur.
En commençant à lire, je pensais justement à remplacer

var premierNombre : Int
premierNombre = 8

par

var premierNombre : Int = 8

Mais puisque tu dis que ça ne fonctionne pas…

Je teste ça chez moi et te dis quoi dans 5 minutes.

Pour ce qui est du Genius Bar, je ne sais pas s’ils traitent ce genre d’erreur.

Peut-être qu’essayer de faire de la place (si c’est possible), et ensuite réinstaller xCode proprement pourrait arranger les choses. A essayer, car il ne me semble pas que mon xCode pèse autant.

A toute de suite,

EDIT: Avec ce code-ci, tout se passe bien chez moi :


(Il ne faut pas oublier de changer également la variable resultat, comme je l’ai fait ci-dessus, mais je suppose que tu l’avais déjà fait)

Alexandre


#5

Effectivement, cela fonctionne en modifiant également la variable resultat, comme tu l’as fait.

Un grand merci !

Je ne comprends pas « top level of the REPL ». C’est quoi REPL ? Cela signifie-t-il qu’avec XCode 10 / Swift 4.2, on ne peut plus déclarer une variable sans l’initialiser sur la même ligne, contrairement aux versions précédentes ?

Dernière question : selon le cours de Maxime, le principe du playground était que changer la valeur s’une variable se répercutait automatiquement dans la colonne de droite et dans la console. Ce n’est plus le cas, il faut maintenant nécessairement réappuyer sur Play ?


#6

Parfait, au moins, ça fonctionne maintenant :smiley:

Pour le REPL, je vais être honnête, je n’en sais rien, je n’avais jamais eu le cas avant que tu postes ce messages… Peut-être que des gens comme Maxime ou Draken seront t’en dire plus.

Pour le bouton play, j’ai été surpris aussi la première fois, mais comme j’utilise rarement les playgrounds, je ne me suis pas trop attardé dessus.


#7

Encore merci en tout cas !


#8

Pas besoin d’attendre une réponse, il suffit juste de faire une petite recherche :wink: