La 6.1.1 commence à dater. C'est du Swift 1.1. On est déjà à la troisième mise à jour de la 6.3 et du Swift 1.2. Et il me semble qu'Apple n'accepte de valider que les applications compilés avec un Xcode récent.
Je ne peux pas taper de code pour le moment, la mise à jour étant en train de s'exécuter.
Je viens de regarder le topo de la mise à jour, y'a pas grand chose qui soit une révolution pour mon cas, à part peut-être les crashs intempestif de ce code de m...
En interne, Apple est déja à XCode 6.4 beta. Tu risques de perdre pas mal de temps, pour convertir ton projet à sa sortie, s'il est refusé pour cause d'XCode trop ancien.
Ceci dit, il est possible d'avoir plusieurs Xcode sur la même machine. A une époque j'avais les version 6.1.1, 6.2 et 6.3 beta en même temps ! Et ça marchait très bien ..
Xcode 6.1.1 parce qu'il était demandé pour le MOOC sur la programmation Swift que je suivais (voir les vidéos dans ma signature)
Xcode 6.2 parce que c'étais la dernière version officielle
Xcode 6.3 beta pour jeter un oeil sur le dév Apple Watch et tuer des chats
La seconde partie du MOOC était basé sur Xcode 6.2, j'ai effacé la 6.1.1 et je tourne maintenant avec deux versions, 6.2 pour les exercices et 6.3 pour être à jour.
Il faut télécharger le dmg depuis le site développer Apple et lancer l'installation à la main. Il te signale alors qu'il y a déjà une autre application du même nom et te propose d'effacer l'ancienne version ou de renommer la nouvelle.
Il n'est pas forcément long de convertir un projet, mais mon expérience m'a apprise que les problèmes bêtes, stupides et chronophage adorent arriver en meute au pire moment, quand le stress est à son maximum ..
tu penses que la mise à jour me fera gagner du temps sur quoi ?
Points qui te feront gagner du temps :
Moins de crash de Xcode
Des erreurs de compilation bien plus claires et explicites qu'avec les premières versions de Xcode 6.1 et Swift 1.0/1.1 (où les erreurs Swift sont parfois incompréhensibles et ne collent pas avec le vrai problème)
Un langage Swift plus cohérent avec les nouveautés du langage Swift 1.2
Points qui te feront perdre du temps :
Attendre avant de migrer de Xcode 6.1 à 6.3, car plus tu vas attendre plus la transition risque d'être coûteuse (surtout si tu attends le dernier moment quand tu vas t'apprêter à publier sur le Store et qu'il faudra obligatoirement publier avec la dernière version de Xcode)
Et rien d'autre, car avec l'assistant de migration automatique intégré à Xcode (menu "Edit" > "Convert" > "To Latest Swift Syntax..."), il convertit tout pour toi
Bref je ne vois que des avantages à migrer vers 6.3 et que des inconvénients à rester à 6.1.
Je fais un truc tout simple (voir plus haut l'objet créé selon le tuto de Draken), et impossible de communiquer avec l'objet. Le println("Coucou - toto"), est juste pour chercher à communiquer, car au départ, j'ai évidemment d'autre besoins. Le plan, c'est d'avoir mes variables en externes (donc dans un objet), puis de se les passer entre controllers (comme Draken me l'a expliqué).
Cela fait plusieurs jours que je piste tout ça dans mon projet, et impossible de communiquer avec ma classe (enfin l'objet - instance de la classe).
Je pense que c'est une histoire de déclaration (ou d'init), mais j'ai tout essayé, j'ai revu les tutos et cours sur les classes. Là , c'est vraiment du béAba, et ça marche pas du tout, et donc je ne peux plus avancer.
Car le mvc expliqué par Draken semble la solution incontournable à mes histoires de tonnes de variables qui communiquent entre controllers
ainsi que mon toggle de la nav, c'est propre, mais mon controller ne se recharge pas.
Car en fait, je suis déjà sur cette page (champs vides) et lorsque je click dans ma tableView (dans ma nav de gauche), les champs doivent se remplir (dans la vue de droite), mais pour ce faire, je dois recharger le controller associé
Je n'ai pas suivi le fil de discussion, mais je peux te donner cette réponse :
Si tu veux que ton VC se recharge, il suffit de créer une méthode "-(void)reload" pour ce VC et de l'appeler, avant de faire popToRootViewControllerAnimated.
Ah merci, mais en fait j'essaie avec une function appelée en delegate, mais je galère un peu. J'insiste, je vais y arriver, chui pas loin. Merci pour tes réponses. Ma structure est un peu complexe à expliquée...
C'est sympa, mais je les aies déjà toutes regardées, et le mec est un peu brouillon quand même, mais il a le mérite de les avoir faites. Je vais quand même me refaire celle-ci. Merci d'insister.
Mais bon, rien de tel que la pratique, la sueur, et les barmen.
Je viens de vérifier, il fonctionne - Tiens moi au jus.
En même temps, c'est bidon, j'en remettrais une quand je serais plus avancé.
Aujourd'hui, je peux enfin passer à la phase 2 de mon appli. Plein de géométrie, de cercles, de poignées, de bezier, de masques, du FUN, quoi. Je vais souffrir, mais en m'amusant - Ouf.
Un grand merci à vous tous. Sans vous, je ne m'en serais jamais sorti, ou j'aurais mis 10 fois plus de temps (et j'ai des doutes là -dessus).
Je suis beaucoup moins stressé ce soir - Le bar, c'est bien mieux que le psy -
[Mode Modérateur] J'ai déplacé les messages relatifs à l'installation d'un nouveau Xcode et sa documentation dans ce sujet dédié pour ne pas trop partir en vrille et dériver du sujet d'origine.
Réponses
Je suis en Version 6.1.1 (6A2008a)
Mais je ne veux pas prendre la dernière tout de suite, j'attend que mon projet avance d'avantage.
Je sais qu'il y a pas mal de truc qui changent au sujet des "?" et "!" mais c'est pas grave. Je m'adapte.
Une raison particulière pour pas passer en 6.3 ? Swift a beaucoup évolué, je vois pas trop le truc d'apprendre une version dépassée ?
La 6.1.1 commence à dater. C'est du Swift 1.1. On est déjà à la troisième mise à jour de la 6.3 et du Swift 1.2. Et il me semble qu'Apple n'accepte de valider que les applications compilés avec un Xcode récent.
Je ne peux pas taper de code pour le moment, la mise à jour étant en train de s'exécuter.
Oui, panique et peur de crasher le mac avec les installe apple, mais il faudra y passer.
Le truc c'est que pour l'instant j'aimerai avancer sur mon projet, et je panique un peu, à cause des délais et pb de tunes.
Bref; que de la connerie tout ça, mais bon, c'est comme ça, je m'accroche.
J'ai tout remonté la structure de mon projet, et j'essaie de mettre en place un vrai et pur mvc, et ça bloque grave.
Chui un peu dépité, ce matin, mais je continue à chercher la faille.
En fait tu prends le problème à l'envers (je pense), tu perds du temps en ayant peur d'en perdre
Jamais eu de soucis de maj xCode.
Je viens de regarder le topo de la mise à jour, y'a pas grand chose qui soit une révolution pour mon cas, à part peut-être les crashs intempestif de ce code de m...
tu penses que la mise à jour me fera gagner du temps sur quoi ?
En interne, Apple est déja à XCode 6.4 beta. Tu risques de perdre pas mal de temps, pour convertir ton projet à sa sortie, s'il est refusé pour cause d'XCode trop ancien.
Ceci dit, il est possible d'avoir plusieurs Xcode sur la même machine. A une époque j'avais les version 6.1.1, 6.2 et 6.3 beta en même temps ! Et ça marchait très bien ..
Xcode 6.1.1 parce qu'il était demandé pour le MOOC sur la programmation Swift que je suivais (voir les vidéos dans ma signature)
Xcode 6.2 parce que c'étais la dernière version officielle
Xcode 6.3 beta pour jeter un oeil sur le dév Apple Watch et tuer des chats
La seconde partie du MOOC était basé sur Xcode 6.2, j'ai effacé la 6.1.1 et je tourne maintenant avec deux versions, 6.2 pour les exercices et 6.3 pour être à jour.
merci pour ces précieuses infos.
Comment tu fais pour avoir plusieurs versions ?
L'installe n'écrase pas automatiquement l'ancienne ?
Sinon, de toutes les façons, je comptais faire la mise à jour et adapter mon projet avant de l'envoyer chez apple.
Pourquoi, c'est si long que ça ?
Il faut télécharger le dmg depuis le site développer Apple et lancer l'installation à la main. Il te signale alors qu'il y a déjà une autre application du même nom et te propose d'effacer l'ancienne version ou de renommer la nouvelle.
Il n'est pas forcément long de convertir un projet, mais mon expérience m'a apprise que les problèmes bêtes, stupides et chronophage adorent arriver en meute au pire moment, quand le stress est à son maximum ..
Points qui te feront gagner du temps :
- Moins de crash de Xcode
- Des erreurs de compilation bien plus claires et explicites qu'avec les premières versions de Xcode 6.1 et Swift 1.0/1.1 (où les erreurs Swift sont parfois incompréhensibles et ne collent pas avec le vrai problème)
- Un langage Swift plus cohérent avec les nouveautés du langage Swift 1.2
Points qui te feront perdre du temps :- Attendre avant de migrer de Xcode 6.1 à 6.3, car plus tu vas attendre plus la transition risque d'être coûteuse (surtout si tu attends le dernier moment quand tu vas t'apprêter à publier sur le Store et qu'il faudra obligatoirement publier avec la dernière version de Xcode)
- Et rien d'autre, car avec l'assistant de migration automatique intégré à Xcode (menu "Edit" > "Convert" > "To Latest Swift Syntax..."), il convertit tout pour toi
Bref je ne vois que des avantages à migrer vers 6.3 et que des inconvénients à rester à 6.1.Bon vous m'avez convaincu.
Mais j'aimerai bien résoudre mon problème de mvc.
Je fais un truc tout simple (voir plus haut l'objet créé selon le tuto de Draken), et impossible de communiquer avec l'objet. Le println("Coucou - toto"), est juste pour chercher à communiquer, car au départ, j'ai évidemment d'autre besoins. Le plan, c'est d'avoir mes variables en externes (donc dans un objet), puis de se les passer entre controllers (comme Draken me l'a expliqué).
J'essaie des trucs du genre
puis
Et c'est nil
Evidemment mon nomEdit n'est pas nil.
Cela fait plusieurs jours que je piste tout ça dans mon projet, et impossible de communiquer avec ma classe (enfin l'objet - instance de la classe).
Je pense que c'est une histoire de déclaration (ou d'init), mais j'ai tout essayé, j'ai revu les tutos et cours sur les classes. Là , c'est vraiment du béAba, et ça marche pas du tout, et donc je ne peux plus avancer.
Car le mvc expliqué par Draken semble la solution incontournable à mes histoires de tonnes de variables qui communiquent entre controllers
Purée, ça rend fou ce truc.
J'ai tout virer mes variables, et je peux créer mon objet ainsi
puis appeler une fonction de l'objet ainsi
et j'ai bien mon println
Et si je fais simple (comme Draken), dès que je met une variable dedans, ça déconne grave.
L'erreur classique
Et si je met un init dans ma classe, Xcode me dit que je dois déclarer mon objet avec les variables - pfff
En fait, ça marche avec des variables comme ça
mais pas avec ça
évidemment, c'est normal.
Désolé pour ces messages de plaintif
C'est le métier qui rentre .. Donc, plus de problème avec le MVC ?
Tu m'étonnes.
Ben là , ça progresse grave - Génial - Encore merci pour ton tuto.
Je vais galérer tout-à -l'heure, lorsque je serais sur mes enregistrements voire mes update, avec mon histoire de
mais je pense que je vais trouver.
J'ai aussi réussi à résoudre un putain de problème qui me tenait depuis plusieurs jours.
Après un
Le controller de la vue de base ne se rechargeait pas (un petit println dans le viewdidload...), et j'ai fait ça :
J'ai peur que ça soit un peu barbare, mais ça marche nickel.
Barbare, car je ne supprime pas la pagesNavigationController.view avant le addSubView !!!
En gros, je reprend le code du départ du lancement de l'appli - Bof
Attention : - (void)viewdidload n'est appelé qu'une seule fois, lors du premier chargement de la vue.
Il faut plutôt que tu logues dans -viewDidAppear.
Ah merci.
Mais en fait, le code :
je l'ai viré, car je perd la jolie transition que j'avais (un toggle de nav de gauche),
et donc je n'ai plus mon controller etape0Controller qui se recharge, et donc je ne peux pas récupérer mes variables.
En gros, on fait comment pour recharger une page autrement qu'avec ce code ?
Si je fais un
ainsi que mon toggle de la nav, c'est propre, mais mon controller ne se recharge pas.
Car en fait, je suis déjà sur cette page (champs vides) et lorsque je click dans ma tableView (dans ma nav de gauche), les champs doivent se remplir (dans la vue de droite), mais pour ce faire, je dois recharger le controller associé
Je n'ai pas suivi le fil de discussion, mais je peux te donner cette réponse :
Si tu veux que ton VC se recharge, il suffit de créer une méthode "-(void)reload" pour ce VC et de l'appeler, avant de faire popToRootViewControllerAnimated.
Ah merci, mais en fait j'essaie avec une function appelée en delegate, mais je galère un peu. J'insiste, je vais y arriver, chui pas loin. Merci pour tes réponses. Ma structure est un peu complexe à expliquée...
Tu devrais regarder ces vidéos (en français) : http://pagesperso-systeme.lip6.fr/Fabrice.Kordon/5I452-2014/semaine-08.php
C'est sympa, mais je les aies déjà toutes regardées, et le mec est un peu brouillon quand même, mais il a le mérite de les avoir faites. Je vais quand même me refaire celle-ci. Merci d'insister.
Mais bon, rien de tel que la pratique, la sueur, et les barmen.
Tiens, je t'ai mis une vidéo en ligne.
C'est bidon, mais la structure s'étoffe. Y'a du mvc.
Le gotoEtape1, est provisoire : c'est juste pour passer à l'étape suivante, qui elle est en pageview.
L'astuce, entre autres, était de mettre la création de l'objet en dehors de la déclaration de la classe du container général.
Le lien vers ta vidéo ne semble pas fonctionner ..
Je viens de vérifier, il fonctionne - Tiens moi au jus.
En même temps, c'est bidon, j'en remettrais une quand je serais plus avancé.
Aujourd'hui, je peux enfin passer à la phase 2 de mon appli. Plein de géométrie, de cercles, de poignées, de bezier, de masques, du FUN, quoi. Je vais souffrir, mais en m'amusant - Ouf.
Un grand merci à vous tous. Sans vous, je ne m'en serais jamais sorti, ou j'aurais mis 10 fois plus de temps (et j'ai des doutes là -dessus).
Je suis beaucoup moins stressé ce soir - Le bar, c'est bien mieux que le psy -
Thaaaaaaaannnnnnnnnnnnnnnnks aLoT aux barmen.
ça fonctionne maintenant. Ma connexion Orange est capricieuse, se bloquant de temps en temps l'espace de quelques secondes.
J'ai déplacé les messages relatifs à l'installation d'un nouveau Xcode et sa documentation dans ce sujet dédié pour ne pas trop partir en vrille et dériver du sujet d'origine.
bravo et encore merci