Partage
  • Partager sur Facebook
  • Partager sur Twitter

MOOC Approfondissez Swift avec la POO

    4 décembre 2017 à 13:29:34

    Merci beaucoup pour votre réponse Geda, ça m'aide beaucoup !
    • Partager sur Facebook
    • Partager sur Twitter
      25 décembre 2017 à 11:23:51

      Bonjour à tous

      Je suis ce cours et développe depuis un iMac 2017.
      Je ne suis pas sûr de poster au bon endroit mais je n'ai pas vu de rubrique dédiée dev iOS / Mac OS.

      Lorsque je fais les exercices et suis les exemples donnés par Ambroise, la réponse de mon iMac est beaucoup plus lente que celle de la vidéo.

      Mes questions sont les suivantes :

      - @Ambroise, peux-tu indiquer la machine que tu as utilisée pour faire les vidéos de ce cours ?

      - @tous, un iMac 2017 est-il une machine correcte pour faire du Dev iOS/Mac OS ?

      ça me semble très juste de mon point de vue, le bus par exemple met pratiquement 30 secondes avant d'apparaître si je change le nombre de portions de route.

      Bonne journée

      -
      Edité par DamienGuiche 25 décembre 2017 à 11:42:01

      • Partager sur Facebook
      • Partager sur Twitter
        20 février 2018 à 16:15:07

        Bonjour

        Dans l'exercice de codage du chapître "initialser les classe", le petit robot n'accepte pas çà, alors que dans le playground çà passe, je ne voie pas la boulette :

        class Personne {
            var prenom: String
            var nom: String
            var age = 0     
            init(prenom: String, nom: String) {
                self.prenom = prenom
                self.nom = nom
            }
        • Partager sur Facebook
        • Partager sur Twitter
          20 février 2018 à 18:39:00

          Salut,

          sans doute faut il initialiser âge aussi non ?

          • Partager sur Facebook
          • Partager sur Twitter
            20 février 2018 à 18:47:43

            il y'a une valeur par default donc ca ne peut pas etre ca :/

            est-ce que tout le code est bien la ou est-ce que la parenthese fermante est juste oublié dans le  copié collé ?

            Quelle est l'erreur sortie par le compilateur exactement ?

            -
            Edité par giantwow 20 février 2018 à 18:48:41

            • Partager sur Facebook
            • Partager sur Twitter
            Tutoriels sur GameplayKitSceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture
              21 février 2018 à 0:17:31

              Il ne s’agit pas du compilateur mais du robot pour l’exercice qui peut être un peu con. 

              Essaie d’inverser L’ordre des parametres aussi. 

              Sinon pases à la suite, je te le valide moi l’exercie !

              • Partager sur Facebook
              • Partager sur Twitter
                21 février 2018 à 16:43:10

                Bonjour à tous.

                Petit éclaircissement sur la solution de l'exercice 1 du cours surcharger les méthodes.

                La solution d'Ambroise est la suivante:

                static func createRoadToSchool() -> Road {
                    let road = Road()
                    for i in 0..<30 {
                        if i%7 == 1 {
                            road.sections.append(HomeRoadSection(children: 2))
                        } else {
                            road.sections.append(RoadSection(type: .plain))
                        }
                    }
                    road.sections.append(SchoolRoadSection())
                    return road
                }

                Hors si j'inscris cette solution dans mon playground j'ai une erreur d'initialisation et je suis donc obligé de faire ceci:

                static func createRoadToSchool() -> Road {
                    let road = Road(length: 30)
                    for i in 0..<30 {
                        if i%7 == 1 {
                            road.sections.append(HomeRoadSection(children: 2))
                        } else {
                            road.sections.append(RoadSection(type: .plain))
                        }
                    }
                    road.sections.append(SchoolRoadSection())
                    return road
                }

                D'où peut venir mon erreur.

                Merci à tous.



                • Partager sur Facebook
                • Partager sur Twitter
                  21 février 2018 à 18:30:04

                  Salut, tu n’as pas spécifié de valeur par défaut pour le paramètre de ton init (ou pas spécifié d’iniT sans paramètres). Du coup t’es obligé d’en Envoyer un. 

                  Ceci dit je vois pas à quoi il peut bien servir. 

                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 février 2018 à 12:21:30

                    Merci pour la piste

                    un p'tit:

                    init() {}

                    au dessus de mon initialisation avec paramètre et tout est rentré dans l'ordre.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 février 2018 à 12:32:05

                      D'autres solutions qui fonctionneraient : 

                      init(length: Int = 30) {
                        // Je sais pas trop ce que tu fais dedans
                      }
                      init(length: Int) {
                        // Je sais pas trop ce que tu fais dedans
                      }
                      
                      convenience init() {
                        init(length: 30)
                      }

                      Si tu ne te sers jamais de ton init(lenght:) à quoi ça sert d'en avoir un ? A plus forte raison, si tu te sers d'un init qui ne fait rien, à quoi ça sert d'en avoir un ? Tu pourrais faire

                      class Road {
                      
                        var length = 30
                        
                        // Pas besoin d'init
                      
                        // Tes autres méthodes
                      }





                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 février 2018 à 13:12:11

                        Merci pour toutes ses infos.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          21 mars 2018 à 20:00:56

                          Bonjour à tous,

                          Je bloque sur l'exercice surchargez les classes ou l'on doit surcharger la méthode se présenter.

                          En effet, j'ai essayé plusieurs façon différente de faire l'exercice mais je n'arrive jamais à le valider.

                          Le code ci dessous parait fonctionner correctement dans le playground de Xcode mais pas sur l'exercice en ligne.

                          Donc si quelqu'un pouvait m'aiguiller sur mon ou mes erreur(s) je lui en serai très reconnaissant.

                          Voici mon code:

                          class Personne {
                              var prenom: String
                              var nom: String
                              var age = 0
                              var sexe: Sexe = .femme
                              
                              init(prenom: String, nom: String) {
                                  self.prenom = prenom
                                  self.nom = nom
                              }
                              
                              func sePresenter() -> String {
                                  return "Bonjour, je m'appelle \(prenom) \(nom)"
                              }
                              
                              func feterSonAnniversaire() {
                                  age += 1
                              }
                              
                              static func creerJamesBond() -> Personne {
                                  let bond = Personne(prenom: "James", nom: "Bond")
                                  bond.age = 40
                                  return bond
                              }
                          }
                          
                          enum Sexe {
                              case homme, femme
                          }
                          
                          class Developpeur: Personne {
                              var ordinateur = "Mac"
                              
                              override func sePresenter()-> String {
                                  let presentation = super.sePresenter()
                                  return "\(presentation) et je suis développeur!" }
                          }
                              let dev = Developpeur(prenom: "Luke", nom: "Skywalker")
                              dev.sePresenter()
                              
                          class Traducteur: Personne {
                              var languesConnues = [String]()
                          }
                          
                          class Athlete: Personne {
                              var recordDu100m = 10.0
                          }

                          Merci pour vos réponses.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            21 mars 2018 à 23:28:10

                            Bonjour , S'il vous plait je voudrais savoir comment passer d'un fragment à une autre activité en cliquant sur un bouton du fragment
                            • Partager sur Facebook
                            • Partager sur Twitter
                              22 mars 2018 à 9:30:32

                              @papyrus Il te manque un espace entre ""développeur" et ton "!". Rien à voir avec l'exercice, mais la règle veut qu'on mette un espace après les ponctuations simples (. ,) et un espace avant et après les ponctuations doubles ( ? : ; !). Exception faite pour "..." qui est considéré comme une ponctuation simple.

                              @MensiMohamed tu es sur le mauvais sujet. Je te recommande d'en créer un qui t'ai propre. Je te recommande également de mettre plus de détails dans tes questions (ce que tu as essayé par exemple). Sinon, il faut le contexte.

                              • Partager sur Facebook
                              • Partager sur Twitter
                                22 mars 2018 à 20:24:30

                                Mer ci pour ta réponse Geda mais malgré le fait que je rajoute l'espace entre "développeur" et "!" l'exercice n'est toujours pas valider :(
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  23 mars 2018 à 3:13:26

                                  Aucun problème finalement

                                  -
                                  Edité par andrecyr 23 mars 2018 à 3:15:43

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    23 mars 2018 à 9:20:34

                                    J'ai repris ton code, j'ai rajouté l'espace et effectivement ça ne suffit pas. En revanche, en supprimant ton "let dev = ..." et "dev.sePres..." ça passe
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      25 mars 2018 à 19:34:08

                                      Alors j'ai également supprimé ces deux lignes de code et pour ça ne valide pas toujours pas.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        25 mars 2018 à 20:32:22

                                        t'as du modifier quelque chose entre temps. J'ai vraiment repris l'ensemble du code que t'as posté en faisant les deux modifications que j'ai indiqué (ajouter l'espace avant le ! et supprimer les deux lignes) et ça marche.

                                        class Personne {
                                            var prenom: String
                                            var nom: String
                                            var age = 0
                                            var sexe: Sexe = .femme
                                             
                                            init(prenom: String, nom: String) {
                                                self.prenom = prenom
                                                self.nom = nom
                                            }
                                             
                                            func sePresenter() -> String {
                                                return "Bonjour, je m'appelle \(prenom) \(nom)"
                                            }
                                             
                                            func feterSonAnniversaire() {
                                                age += 1
                                            }
                                             
                                            static func creerJamesBond() -> Personne {
                                                let bond = Personne(prenom: "James", nom: "Bond")
                                                bond.age = 40
                                                return bond
                                            }
                                        }
                                         
                                        enum Sexe {
                                            case homme, femme
                                        }
                                         
                                        class Developpeur: Personne {
                                            var ordinateur = "Mac"
                                             
                                            override func sePresenter()-> String {
                                                let presentation = super.sePresenter()
                                                return "\(presentation) et je suis développeur !" }
                                        }
                                        
                                             
                                        class Traducteur: Personne {
                                            var languesConnues = [String]()
                                        }
                                         
                                        class Athlete: Personne {
                                            var recordDu100m = 10.0
                                        }

                                        reprend depuis le départ sinon.

                                        -
                                        Edité par Geda 25 mars 2018 à 20:32:54

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          1 avril 2018 à 9:42:13

                                          Merci beaucoup pour ton aide Geda!
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            8 juin 2018 à 3:30:14

                                            SebouChu a écrit:

                                            Bonjour Ambroise,

                                            j'ai un problème dans l'exercice en ligne du chapitre 4 de la partie 2, lorsque j'écris le code suivant pour la méthode sePresenter(), il n'accepte pas la réponse :

                                            func sePresenter() -> String {
                                              return "Bonjour, je m'appelle \(prenom) \(nom)"
                                            }

                                            Alors que lorsque j'utilise ce code dans un Playground, il n'y a pas de problème. :(

                                            De plus, il y a une erreur dans l'exercice en ligne du chapitre 3 de la partie 3, tu demandes à réécrire la méthode sePresenter() de la classe Traducteur par "Hello, I am <prenom> <nom>" alors que dans les tests, tu compares le résultat à ""Hello, my name is <prenom> <nom>".

                                            P.S. : Tout de même, tes cours sur Swift sont d'une très bonne qualité et je t'en remercie ;)



                                            -
                                            Edité par SebouChu 29 juin 2017 à 16:21:48

                                            Bonjour je pense que tu essayais de faire directement tout l'exercice. donc certainnement tu implementais aussi la fonction feterSonAnniversaire.

                                            pour corriger l'erreur il faut executer les instructions et tester au fur et à mesure



                                            -
                                            Edité par Steve Tchatchouang 8 juin 2018 à 3:32:27

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              21 juin 2018 à 15:11:43

                                              Bonjour, j'ai un problème lors de la compilation de mon swift. cela met énormément de temps et je n'arrive pas à exécuter le jeu rpg. si qqn a une idée pour m'aider merci d'avance.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                26 juin 2018 à 18:44:51

                                                Les cours suivant sont toujours fermés, les bases de données et les listes. de quel printemps parlez vous SVP ?
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  29 juin 2018 à 17:26:48

                                                  C'était bien du printemps 2018 qui s'est terminé il y a quelques jours :/ ! On a un petit peu de retard mais la production écrite étant terminée, les 2 derniers cours ne devraient plus trop tardé à être publiés. A la fin du mois de Juillet, les deux devraient être sortis. Bon courage pour la suite de la formation !
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    30 juin 2018 à 12:02:45

                                                    Merci ! Beaucoup de courage et que le Seigneur vous bénisse !
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      11 juillet 2018 à 13:58:12

                                                      Bonjour à tous !
                                                      Je suis actuellement le cours  "Approfondissez Swift avec la POO". Cependant, 'ai recopié dans le Playground le même bout de code que dans le cours et j'ai une erreur 'override' can only be specified on class members' , je parle de ce morceau de code :
                                                      class SchoolBus: Bus {
                                                      
                                                          var schoolName = ""
                                                      
                                                          init () {
                                                      
                                                              override func drive(road: Road) {
                                                      
                                                                  for section in road.sections {
                                                      
                                                                      switch section.type {
                                                      
                                                                      case .plain:
                                                      
                                                                          moveForward()
                                                      
                                                                      case .home:
                                                      
                                                                          stop()
                                                      
                                                                          moveForward()
                                                      
                                                                      case .school:
                                                      
                                                                          stop()
                                                      
                                                                      }
                                                      
                                                                  }
                                                      
                                                              }
                                                      
                                                          }
                                                      
                                                      }



                                                      Pourriez-vous m'éclairer sur ce deux point svp ? Merci d'avance et bonne journée à vous;) !

                                                      -
                                                      Edité par LouisJean4 11 juillet 2018 à 19:10:37

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        11 juillet 2018 à 14:17:07

                                                        Salut,

                                                        c‘est complètement illisible. Utilise les balises code

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          11 juillet 2018 à 19:11:40

                                                          J'ai trouvé mon erreur ! J'avais mis mon override dans l'init :honte: Désolé du dérangement et bonne soirée !

                                                          -
                                                          Edité par LouisJean4 11 juillet 2018 à 20:49:15

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            30 juillet 2018 à 8:52:11


                                                            Bonjour, VincentBray souligne effectivement une erreur dans la correction d’Ambroise : l’instanciation de Road() demande un paramètre length.

                                                            Cependant, si on initialise ce paramètre à 30 et qu’on crée 30 autres portions de route dans les lignes suivantes, le live view dessine 60 portions de route.

                                                            Pour ma part, j’ai plutôt écrit let road = Road(length: 0) et ça fonctionne bien : le tableau des sections de routes est vide à l’ïnitialisation de la variable, puis le for in remplit correctement le tableau avec 30 portions de route et le live view dessine bien 30 portions de route !

                                                            VincentBray a écrit:

                                                            Bonjour à tous.

                                                            Petit éclaircissement sur la solution de l'exercice 1 du cours surcharger les méthodes.

                                                            La solution d'Ambroise est la suivante:

                                                            static func createRoadToSchool() -> Road {
                                                                let road = Road()
                                                                for i in 0..<30 {
                                                                    if i%7 == 1 {
                                                                        road.sections.append(HomeRoadSection(children: 2))
                                                                    } else {
                                                                        road.sections.append(RoadSection(type: .plain))
                                                                    }
                                                                }
                                                                road.sections.append(SchoolRoadSection())
                                                                return road
                                                            }

                                                            Hors si j'inscris cette solution dans mon playground j'ai une erreur d'initialisation et je suis donc obligé de faire ceci:

                                                            static func createRoadToSchool() -> Road {
                                                                let road = Road(length: 30)
                                                                for i in 0..<30 {
                                                                    if i%7 == 1 {
                                                                        road.sections.append(HomeRoadSection(children: 2))
                                                                    } else {
                                                                        road.sections.append(RoadSection(type: .plain))
                                                                    }
                                                                }
                                                                road.sections.append(SchoolRoadSection())
                                                                return road
                                                            }

                                                            D'où peut venir mon erreur.

                                                            Merci à tous.





                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            MOOC Approfondissez Swift avec la POO

                                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                            • Editeur
                                                            • Markdown