Partage
  • Partager sur Facebook
  • Partager sur Twitter

MOOC Approfondissez Swift avec la POO

    29 septembre 2020 à 11:04:42

    Je connais pas trop le cours. C’est quoi la consigne precise ?
    • Partager sur Facebook
    • Partager sur Twitter
      30 septembre 2020 à 8:06:31

      Hello

      Juste ajouter les 2 méthodes ; je te donnerai la consigne exacte plus tard. Dois aller bosser. Merci

      Voilà ; mais pour moi, si ça passe dans Playgvround, c'est suffisant

      Dans cet exercice, nous allons rajouter deux méthodes à notre classe Personne :

      • Une méthode sePresenter : elle doit renvoyer un String du type :  "Bonjour, je m'appelle Michael Jackson" (si le prénom de la personne est Michael et le nom Jackson)
      • Une méthode feterSonAnniversaire : elle doit incrémenter de 1 la propriété age.

      -
      Edité par ClaudioLooping 30 septembre 2020 à 17:57:56

      • Partager sur Facebook
      • Partager sur Twitter
        3 octobre 2020 à 10:09:42

        Hello

        Quelqu'un peut-il svp m'expliquer comment fonctionne le playground de la dernière version d'XCode (12), afin de me rapprocher du fonctionnement vu dans la formation?

        Vu que la console est trop exigeante pour valider mes exercices, je préfère utiliser playground

        Merci d'avance

        • Partager sur Facebook
        • Partager sur Twitter
          4 octobre 2020 à 12:25:26

          C'est bon, j'arrive à comprendre comment ça fonctionne ; il faut cliquer sur la flèche pour lancer le Playground ; ensuite, ce n'est pas automatique : il faut répliquer sur la flèche à chaque modification

          • Partager sur Facebook
          • Partager sur Twitter
            28 novembre 2020 à 18:56:19

            RESOLU

            Bonjour,

            j'ai un problème avec le cours sur le Canvas. J'ai bien télécharger le cours sur gitHub.

            Mais impossible d'afficher l'assistant ... je ne peux pas faire le cours sans.

            Quelqu'un aurait le même problème ? Voir même la solution ? 

            Merci d'avance. :)

            NB : J'ai utilisé la méthode citée dans d'autres messages du forum (ci-joint). J'ai cependant du ouvrir un Playground blank, supprimer tout les fichiers, et coller le fichier schoolBus dedans. Sinon je n'avais même pas la possibilité d'afficher le live view.

            BindaIch a écrit:

            Guillaume__ a écrit:

            Bonjour,

            Je viens de commencer le cours et sur xCode 11 je rencontre un problème déjà évoqué ici mais resté sans solution:

            Comment faire pour obtenir le TimeLine comme dans la première page du cours ?

            Les raccourcis ne fonctionnent pas, l'option n'apparait tout simplement pas.

            Par contre en ouvrant un précédent projet je peux bien y accéder, mais rien sur notre fichier "SchoolBusPlayground".

            Si vous avez une idée de solution...


            Bonjour,

            Activer "Live View"

            Puis en lançant le code, le canvas devrait apparaître :

            -
            Edité par BindaIch 9 avril 2020 à 19:01:03

            -
            Edité par JBSH 28 novembre 2020 à 19:10:48

            • Partager sur Facebook
            • Partager sur Twitter
              2 décembre 2020 à 19:30:04 - Message modéré pour le motif suivant : Toute forme de publicité est interdite


                9 janvier 2021 à 9:45:56

                Bonjour 

                  J'ai un petit problème avec les cours sur les énumération dans mon code ci dessous le switch me donne bien la bonne case.

                  Mais quand je veux afficher la phrase avec le prénom, nom, âge, et sexe impossible. Ca ne m'affiche rien et dans le Playground j'ai le type qui s'affiche mais aucune valeur.

                  J'aimerais bien comprendre mon erreur pour avancer sereinement sur le reste 

                Merci 

                A bientôt

                enum Sexe: String{
                  case feminin = "une femme"
                 case masculin = "un homme"
                }
                
                class Personne {
                  var prenom: String
                  var nom: String
                  var age = 0
                  var sexe: Sexe
                
                  
                    func sePresenter(prenom: String, nom: String, age: Int, sexe: Sexe) {
                    return print ("Bonjour, je m'appelle \(prenom) \(nom) j'ai \(age) et je suis")
                          }
                  
                    init(prenom: String, nom: String,age: Int, sexe: Sexe) {
                    self.prenom = prenom
                    self.nom = nom
                    self.age = age
                    self.sexe = sexe
                    switch sexe {
                    case .feminin: " une Femme"
                    case .masculin: "un Homme"
                    }
                    }
                    func feterSonAnniversaire(age: Int){
                        self.age += 1
                      }
                  }
                
                  
                class Developpeur: Personne {
                  var ordinateur = "Mac"
                }
                
                class Traducteur: Personne {
                  var languesConnues = [String]()
                }
                
                class Athlete: Personne {
                  var recordDu100m = 10.0
                }
                
                
                var personne = Personne(prenom: "jean", nom: "delafontaine", age: 50, sexe: .masculin)
                
                Personne.sePresenter(personne)
                • Partager sur Facebook
                • Partager sur Twitter
                  9 janvier 2021 à 11:52:20

                  Salut

                  sexe.rawValue pour accéder a la valeur de l’énum.

                   
                  Ceci dit , Cest pas terrible de faire comme ça :)

                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 avril 2021 à 19:48:37 - Message modéré pour le motif suivant : Merci de créer votre propre sujet


                      7 août 2021 à 14:59:13 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


                        1 octobre 2021 à 14:59:47

                        Bonjour, je suis un peu perdu par tous ces codes les amies, je ne sais plus par où commencer, car je suis tombé par hasard sur ce sujet.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          12 octobre 2021 à 12:31:58

                          Bonjour, 

                          J'ai un soucis dans le cours "Développez une application iPhone avec le modèle MVC", les questions ne se chargent pas et mon tableau questions est toujours vide, ce qui engendre forcement une erreur. 

                          func get(completionHandler: @escaping ([Question]) -> ()) {
                                  let task = URLSession.shared.dataTask(with: self.url) { (data, response, error) in
                                      guard error == nil else {
                                          completionHandler([Question]())
                                          return
                                      }
                                      DispatchQueue.main.async {
                                          completionHandler(self.parse(data: data))
                                      }
                                  }
                                  task.resume()
                              }

                          dans cette fonction, quand je debugge au pas à pas, il passe de la ligne let task = .. directement à task.resume. j'ai l'impression qu'il ne rentre jamais dans la fonction completionHandler.

                          quand je fais un print(questions) : je vois bien une chaine de caractères, par contre si je fais print(questions[0]), il me renvoie une erreur. 

                          Pouvez vous m'aider à résoudre ce probleme, 

                          Merci, 

                          Elodie

                          -
                          Edité par ElodieMeurisse 12 octobre 2021 à 23:40:32

                          • Partager sur Facebook
                          • Partager sur Twitter
                            13 octobre 2021 à 13:48:50

                            Salut,

                            En fait tu crées une task en passant une url et une closure à exécute lorsqu’on a la réponse de cette url. A ce moment là, rien ne se passe. L’appel réseau n’est pas encore fait. On est uniquement dans de l’instantiation de variable. Donc effectivement tu ne passes pas encore dans la closure. C’est le task.resume qui lance l’appel réseau. D’où le “bond”. En réalité c’est juste la ligne d’après. Un peu comme si, pour créer une instance de quelque chose, tu passais par une méthode qui prenait 15 000 paramètres. Forcément, ça prend plusieurs lignes.

                            Si tu met un breakpoint dans le completion, tu devrais passer dedans. Plus ou moins rapidement en fonction de la vitesse de ton réseau.

                            Pour le print, je ne peux pas t’aider. Je ne sais pas où tu l’ajoutes, je ne connais pas le contenu de questions. Y’a trop de paramètres pour que je puisse te donner une réponse viable.

                            Si t’as d’autres questions, des précisions, autre, hésite pas.

                            • Partager sur Facebook
                            • Partager sur Twitter
                              14 octobre 2021 à 21:41:54

                              merci beaucoup pour ta réponse ! je comprends mieux et j'ai trouvé mon probleme !

                              Elodie

                              -
                              Edité par ElodieMeurisse 14 octobre 2021 à 22:17:22

                              • Partager sur Facebook
                              • Partager sur Twitter
                                18 octobre 2021 à 15:07:34

                                @Geda , merci pour cette petite explication.

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  18 mars 2022 à 11:22:03

                                  Bonjour à toutes et à tous,

                                  Il m'est impossible d'ouvrir la playground du projet dans xcode 13, j'ai deux messages d'erreur consécutifs:

                                  merci pour votre aide,

                                  The file “SchoolBusPlayground.playground” couldn’t be saved in the folder “SchoolBus Project”.

                                   


                                  au temps pour moi, je n'avais pas télécharge le folder, probleme résolu. merci tout de meme

                                  -
                                  Edité par IsmaelDbj 18 mars 2022 à 11:47:27

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    30 juin 2022 à 13:34:43

                                    Bonjour à tous, je ne comprends pas 2 choses dans le Chapitre 2.3: initialisez les classes.

                                    1) Il est dit qu'on va désinitialiser  numberOfStudentsAtSchool via "desinit" . Mai je ne comprends pas pourquoi on doit désinitier la variable numberOfStudentsAtSchool. J'aurai plus compris qu'on doive désinitier driverName car initialisé au seins meme de la classe, contrairement à numberOfStudentsAtSchool qui elle a été initialisé en dehors du scope de la classe

                                    2) à la fin du code, après l'instance de la classe et l'incrémentation de la quantité de places occupées, si j'essaie d'afficher la valeur de numberOfStudentsAtSchool, la valeur est de 0, or cela devrait être égale à 2 non? Comment ça se fait et comment doit on faire pour afficher cette valeur (de 2 donc) après l'instance de la classe?

                                    var numberOfStudentsAtSchool = 0
                                    class Bus {
                                       var driverName: String
                                       var seats = 20
                                       var occupiedSeats = 0
                                       let numberOfWheel = 4
                                    
                                       init(driverName: String) {
                                          self.driverName = driverName
                                       }
                                       deinit {
                                          numberOfStudentsAtSchool += occupiedSeats
                                       }
                                    }
                                    
                                    var buss = Bus(driverName: "Jean")
                                    
                                    buss.occupiedSeats += 1
                                    buss.occupiedSeats += 1
                                    print(numberOfStudentsAtSchool) // affiche 0



                                    Merci à vous pour votre aide

                                    -
                                    Edité par ced_le_dingue 30 juin 2022 à 13:49:04

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      3 juillet 2022 à 14:29:29

                                      Salut,

                                      Je ne connais pas le cours donc j’ai pas le contexte pour repondre à ta première question.  Je peux juste dire que deinit est appelé quand l’objet est deinit mais ne sert nullement à « deinitialiser » (détruire en français) la variable dont tu parles. 

                                      Pour la deuxieme question, tu incrémentes 2 fois occupiedSeats. Ensuite tu print numberOfStudent que tu n’as jamais touché. Les deux variables n’ont rien à voir l’une avec l’autre. Je vous pas pourquoi tu t’attend A afficher 2. Si tu print occupiedSeat tu auras 2

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        5 juillet 2022 à 14:45:02

                                        Geda a écrit:

                                        Salut,

                                        Je ne connais pas le cours donc j’ai pas le contexte pour repondre à ta première question.  Je peux juste dire que deinit est appelé quand l’objet est deinit mais ne sert nullement à « deinitialiser » (détruire en français) la variable dont tu parles. 

                                        Pour la deuxieme question, tu incrémentes 2 fois occupiedSeats. Ensuite tu print numberOfStudent que tu n’as jamais touché. Les deux variables n’ont rien à voir l’une avec l’autre. Je vous pas pourquoi tu t’attend A afficher 2. Si tu print occupiedSeat tu auras 2


                                        Bonjour Geda, merci beaucoup pour ta réponse et pour ton temps.

                                        Daccord pour la 1ère question.

                                        Pour la deuxième je pensais que comme on ça : numberOfStudentsAtSchool += occupiedSeats

                                        in fine on aurait le nombre d'occupiedSeat = au nombre de numberOfstudentAtSchool. Mais au temps pour moi car si je comprends bien, tout ce qui figure entre les accolades de deinit n'est pas "executé"...  Je suppose que dans ce cours il nous parlait de deinit seulement pour expliquer que ça avait lieu automatiquement et nous montrer ce que ça faisait (même si pour le coup j'ai pas trop compris (vu ma question 1). 

                                        Merci en tout cas ;) 

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          5 juillet 2022 à 18:50:36

                                          comme le buss n'est pas désalloué, il existe toujours et donc on ne passe pas par le deinit

                                          si tu le désalloues (buss=nil) et que tu affiches alors numberOfStudentsAtSchool, tu afficheras alors 2.

                                          https://docs.swift.org/swift-book/LanguageGuide/Deinitialization.html 

                                          • 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