Partage
  • Partager sur Facebook
  • Partager sur Twitter

MOOC Swift iOS

    11 avril 2017 à 9:30:23

    Salut !

    Apres avoir essayé le code que tu nous montre ici, je n'ai aucun problème, tout fonctionne très bien !

    Le problème peut encore venir de la liaison entre ton controller et ton slider, est tu sur de tout avoir bien relié ?

    • Partager sur Facebook
    • Partager sur Twitter
    Tutoriels sur GameplayKitSceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture
      11 avril 2017 à 10:37:26

      Merci pour la réponse.

      J'ai vérifié, et du coup j'ai même deleter mon slider et mon stepper, je les ai recréer, puis reliés à nouveau, et toujours la même erreur...

      Edit : je pensais que le problème venait de l'alimentation de ma variable valSlider.value, j'ai donc mis la ligne en commentaire et j'ai toujours le même souci !

      Et si je mets tout ce qu'il y a dans ma fonction incrementeStepper en commentaire ça buggue toujours !

      ça doit donc venir du fonctionnement du stepper mais je n'arrive pas à trouver pourquoi ??

      -
      Edité par MaxBlac 11 avril 2017 à 11:06:43

      • Partager sur Facebook
      • Partager sur Twitter
      De retour au source
        11 avril 2017 à 11:59:18

        Ok ! Et t'as essayé d'enlever ton breakpoint ?

        Non parce que ton programme me semble pas poser probleme et ton erreur ressemble plus a un breakpoint rencontré plutot qu'a un vrai crash :/

        -
        Edité par giantwow 11 avril 2017 à 12:02:09

        • Partager sur Facebook
        • Partager sur Twitter
        Tutoriels sur GameplayKitSceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture
          11 avril 2017 à 14:07:25

          Punaise...j'aurais pu me creuser la tête un bon moment !!

          Effectivement ça marche ! Je ne sais pas comment ce breakpoint est arrivé là mais maintenant je sais comment ça fonctionne !!

          Merci pour l'aide :)

          • Partager sur Facebook
          • Partager sur Twitter
          De retour au source
            12 avril 2017 à 21:02:54

            En cliquant sur le coté tu peux mettre des breakpoints. C'est relativement utile pour suivre l'exécution de son programme quand il faut débug.

            Tu peux poursuivre l'exécution en cliquant sur le bouton "Lecture" (Sur la barre, au dessus de la console, à droite de l'icône du breakpoint.)

            -
            Edité par Geda 12 avril 2017 à 21:04:28

            • Partager sur Facebook
            • Partager sur Twitter
              16 avril 2017 à 10:16:49

              Merci pour les précisions, j'ai regardé un peu le fonctionnement des breakpoint, ça peut effectivement être utile.

              Par contre je viens de recevoir les corrigés de l'exercice sur la gestion de l'animation et j'ai un peu les boules, ça va du 7/7 avec pour commentaire "impec" à un 4/7 avec pour simple commentaire "voila", et pour finir un 0/7 avec le commentaire suivant : "pas envie"...:o

              D'une ça me plombe ma moyenne et ça m'empêche d'atteindre la limite pour valider le cours, de deux si il y a des personnes qui n'ont pas envie de jouer le jeu y'a t-il un moyen de les signaler ??

              ça s'est très bien passé sur mes 2 premiers cours mais là j'avoue que je suis carrément déçu.

              • Partager sur Facebook
              • Partager sur Twitter
              De retour au source
                16 avril 2017 à 10:28:01

                Bah disons que suivre un tuto c'est plus pour toi meme, pas pour avoir une note ou un diplome... Un recruteur renseigné sait qu'un diplome d'open classroom vaut pas grand chose (no offense guys...)

                Tu peux toujours demander a un admin si tu ressent une injustice, mais je garantie rien ! :D

                • Partager sur Facebook
                • Partager sur Twitter
                Tutoriels sur GameplayKitSceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture
                  18 avril 2017 à 8:03:12

                  MaximeBlache, j'ai exactement le même problème que toi.... et j'ai même l'impression que nous avons eu le mêmes correcteurs ^^

                  J'i envoyé un mail à openclassrooms pour faire remettre en correction l'exercice...

                  Et même si les diplômes valent ce qu'ils valent, mon entreprise me finance les formations sous réserve que j'ai les diplômes donc franchement les boules... ans parlé que les correcteurs ne prennent, pour certains, même pas la peine de lire les commentaires que l'on met ^^

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Vincent M
                    19 avril 2017 à 14:24:08

                    Bonjour, 

                    J'aurais voulu savoir comment avoir une aperçu directement sur mon Iphone, est ce possible sans acheter le compte dévellopeur ?

                    • Partager sur Facebook
                    • Partager sur Twitter
                      19 avril 2017 à 16:06:29

                      Salut !

                      Oui il y'a un moyen avec Xcode, c'est tres facile !

                      1) Brancher ton Iphone a ton ordi avec ton cable

                      2) Ouvrir ton projet sur Xcode

                      3) Selectionner ton Iphone dans la liste des targets

                      4) Autoriser dans ton Iphone l'installation de l'application (accepter avec la fenetre qui va s'ouvrir)

                      5) Y'a pas de 5 !

                      Tu peux aller voir ici pour un tutoriel avec plus détails

                      -
                      Edité par giantwow 19 avril 2017 à 16:39:15

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Tutoriels sur GameplayKitSceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture
                        19 avril 2017 à 20:28:04

                        Merci giantwow, tout fonctionne parfaitement !
                        • Partager sur Facebook
                        • Partager sur Twitter
                          25 avril 2017 à 9:24:46

                          Bonjour à tous,

                          petite question sur iOS mais pas totalement en rapport avec le mooc :

                          je fais une petite appli de géolocalisation incluant un MKMapView

                          Je voudrais intercepter le swipe sur la carte pour activer des fonctionnalités. Hors le swipe permet déjà le déplacement sur la carte et du coup j'ai l'impression de le GestureReconizer n'est pas appliqué. Quelqu'un connait-il une solution pour garder le déplacement, tout en passant dans la fonction déclarée dans le GestureReconizer ?

                          Dans le viewDidLoad :

                          //mapview setup to show user location
                                      map.delegate = self
                                      map.showsUserLocation = true
                                      map.userTrackingMode = .followWithHeading
                                      map.mapType = .hybrid
                                      map.addGestureRecognizer(UISwipeGestureRecognizer(target: map, action: #selector(swipe)))


                          Fonction "swipe" :

                          // Glissé
                              func swipe(sender: UISwipeGestureRecognizer){
                                  btnCentrer.isHidden=false
                                  bCenter=false
                              }
                          

                          Merci à tous

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Vincent M
                            25 avril 2017 à 10:32:08

                            Bonjour, je pense que tu t'y prend mal, regarde ce lien : 

                            https://developer.apple.com/reference/mapkit/mkmapviewdelegate

                            Notamment les deux méthodes : regionWillChangeAnimated et regionDidChangeAnimated

                            • Partager sur Facebook
                            • Partager sur Twitter
                              25 avril 2017 à 10:48:34

                              Geda a écrit:

                              Bonjour, je pense que tu t'y prend mal, regarde ce lien : 

                              https://developer.apple.com/reference/mapkit/mkmapviewdelegate

                              Notamment les deux méthodes : regionWillChangeAnimated et regionDidChangeAnimated


                              Merci je vais regarder :D

                              Je viens de faire l'essai, et ça ne fait pas ce qu'il me faut.

                              en effet, le code est exécuté lorsque je zoomes (double clic ou avec 2 doigts) alors que ce qu'il me faut c'est vraiment du déplacement de la carte par l'utilisateur :/

                              Désolé je suis compliqué ^^

                              -
                              Edité par VincentMourareau 25 avril 2017 à 11:07:20

                              • Partager sur Facebook
                              • Partager sur Twitter
                              Vincent M
                                25 avril 2017 à 16:29:30

                                Elle est aussi exécutée quand tu bouges la map non ? C'est just le call quand tu zoomes qui te convient pas non ?

                                Regarde ça : http://stackoverflow.com/a/30924768

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  26 avril 2017 à 9:46:41

                                  Bonjour, 

                                  Je suis débutante ici. Mais j'ai un problème avec le simulator de xcode. Je vois uniquement un écran noir. 

                                  Mon mac n'est tout récent mais j'arrive à faire tout les updates etc. J'ai cherché différentes solutions mais rien n'a abouti. 

                                  Vous avez peut-être une solution? 

                                  Merci ! 

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    26 avril 2017 à 10:03:35

                                    Bonjour,

                                    Es-tu sûre que ton projet fonctionne ? Pourrais-tu nous fournir des captures écrans du storyboard ?

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      27 avril 2017 à 18:53:11

                                      Hello,

                                      je reviens vers vous pour un problème dans le chapitre concernant les tableview.

                                      J'ai ma 2ème section ("informations") qui ne s'affiche pas (ni le titre, ni la ligne), ça marche nickel pour la section "get some help".

                                      J'utilise le code suivant :

                                      import UIKit
                                      
                                      class Parametres : UIViewController , UITableViewDelegate , UITableViewDataSource {
                                      
                                          
                                          //Nombre de sections en tout
                                          
                                          func numberOfSectionsInTableView(tableView: UITableView) -> Int {
                                              
                                              return 2
                                              
                                          }
                                          
                                          
                                          func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
                                              
                                              switch section {
                                                  
                                              case 0: return 2 //Deux items dans la premiere section
                                                  
                                              case 1: return 1 //Un item dans la deuxieme
                                                  
                                              default: return 0
                                                  
                                              }
                                              
                                          }
                                          
                                          //Titres des en-têtes de chaque section
                                          
                                          func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
                                              
                                              //On récupère le numéro de section concerné
                                              
                                              switch section {
                                                  
                                              case 0: return "Get some help"
                                                  
                                              case 1: return "Informations"
                                                  
                                              default: return ""
                                                  
                                              }
                                              
                                          }
                                          
                                          func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
                                              
                                              //On crée une cellule basique
                                              
                                              let cell = UITableViewCell(style: .default, reuseIdentifier: "basic")
                                              
                                              //On va lui attribuer un texte en function de sa place
                                              
                                              switch indexPath.section {
                                              case 0:
                                                  switch indexPath.row {
                                                  case 0: cell.textLabel?.text = "Contact us"
                                                      break
                                                  case 1: cell.textLabel?.text = "Visit our Website"
                                                      break
                                                  default:
                                                      break
                                                  }
                                              case 1: cell.textLabel?.text = "Get more infos"
                                                  break
                                              default:
                                                  break
                                              }
                                              
                                              return cell
                                              
                                          }
                                          
                                      }
                                      


                                      J'ai lu, relu, re-relu mon code, j'ai trifouillé dans l'interface builder, j'ai tenté de passer en mode paysage pour voir si la section n'était pas cachée sur un côté mais rien...je sèche, ça me rend fou :euh:

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      De retour au source
                                        28 avril 2017 à 22:45:14

                                        Salut,

                                        remplace : 

                                        func numberOfSectionsInTableView(tableView: UITableView) -> Int {
                                                
                                                return 2
                                                
                                            }

                                        par :

                                        func numberOfSections(in tableView: UITableView) -> Int {
                                                return 2
                                            }
                                        

                                        Ceci dit,

                                        Tu ne devrais pas mettre de View Controller directement dans ton IB. Tu devrais mettre un ViewController et un tableview à l'intérieur pour être plus flexible. Tu devrais pas mettre les fonctions de tes delegates et les fonctions du ViewController ensemble. Tu ne devrais pas non plus mettre des "flat" return (je viens d'inventer le terme. Je parle des return 2). Et tu ne devrais pas non plus construire ton truc au fur et à mesure.

                                        Pour résumé, tu devrais faire comme ça :

                                        class Parameters : UIViewController {
                                          @IBOutlet weak var tableView : UITableView!
                                        
                                          let headers = ["Get Some Help", "Informations"]
                                          let cellsContent = [["Contact us", "Visit our website"], ["Get more infos"]]
                                        
                                          func viewDidLoad() {
                                            super.viewDidLoad()
                                            tableView.delegate = self 
                                            tableView.dataSource = selfz
                                          }
                                        }
                                        
                                        extension Parameters : UITableViewDelegate, UITableViewDataSource {
                                          override func numberOfSections(in tableView: UITableView) -> Int {
                                            return headers.count
                                          }
                                        
                                          override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
                                             return cellsContent[section].count     
                                          }
                                        
                                          override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
                                             return header[section]      
                                          }
                                        
                                          override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
                                            
                                          //Identifier à définir dans le storyboard lorsqu'on mettra la cell "prototype" dans le tableview      
                                          let cell = UITableViewCell(style: .default, reuseIdentifier: "basic")
                                                cell.textLabel?.text = cellsContent[indexPath.section][indexPath.row]
                                                return cell
                                                
                                            }
                                          
                                        }



                                        J'ai écrit ce code quasiment sur openclassrooms donc il peut y avoir des erreur de typo. Suite à ça, idéalement, tu mets les strings contenus dans les array dans un fichier de string.

                                        Je comprend bien que tu débutes et que ça fait beaucoup d'un coup, mais c'était important pour moi de préciser tout ça (puisque tu ne le trouveras certainement pas dans le cours d'OC)

                                        -
                                        Edité par Geda 28 avril 2017 à 22:46:42

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Anonyme
                                          28 avril 2017 à 23:09:15

                                          Bonjour,

                                          je suis débutant et je développe une petite application.

                                          L'application que je suis en train de préparer fonctionne bien à partir du moment où l'utilisateur rempli les paramètres dans un viewcontroller dédié mais si il ne le fait pas et qu'il va dans sur la deuxième page, l'appli plante car les paramètres sont vides... normal...

                                          Je voudrais donc créer une fonction avec un bouton sur la page 1 qui vérifie que les paramètres ont été remplis dans la page 2 "paramètres", c'est à dire si les 3 uitextfield ont été rempli.
                                          si c'est rempli, le bouton permet d'accéder à la page 3 où il y a les fonction de calculs sinon j'aimerais faire apparaitre un avertissement pour remplir les paramètres...

                                          et çà je ne sais pas faire, comment vérifier si les cases dans paramètres sont remplis et comment faire apparaitre une fenêtre si ce n'est pas le cas...

                                          Je vous remercie pour votre aide...
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            29 avril 2017 à 14:01:04

                                            Bonjour,

                                            Peux-tu montrer un bout de code présentant ce que tu expliques ?

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            Anonyme
                                              29 avril 2017 à 20:11:09

                                              Bonjour,

                                              merci de vous intéresser à mon problème qui je suis sur va vous paraitre facile mais je ne connais pas bien les fonctions mettre en place...

                                              J'ai créer trois pages : une page d'accueil où il y a 1 bouton "correction" qui amène à la page 2 de calcul automatique et une page 3 pour les paramètres...

                                              Dans cette page 3, j'ai 3 uitextfield à remplir pour que mes calculs fonctionnent... Malheureusement à la 1ere utilisation, si l'utilisateur ne remplit pas les champs et qu'il clique sur correction, l'application plante.

                                              Je voudrais donc que quand on appuie sur "correction", il vérifie que les champs de la page paramètres ont été rempli sans quoi un label apparait pour demander à l'utilisateur de remplir les paramètres. Vous comprenez ?

                                              J'ai pris le parti de vérifier si les valeurs sauvegardées étaient non nul avec ce code là :

                                              func verifButton(_ sender: UIButton) {

                                              if (sauvchamp1.value(forKey: "monCHAMP1") as! NSString).integerValue != 0&& (sauvchamp1.value(forKey: "monCHAMP2") as! NSString).integerValue != 0&& (sauvchamp1.value(forKey: "monCHAMP3") as! NSString).integerValue != {

                                              true

                                              } else { ErreurMessage.text = " vérifier vos paramètres" }


                                              mais ça ne fonctionne pas, ce que je trouve normal puisque la sauvegarde n'a jamais été faite..


                                              Existe t'il d'autres fonctions pour vérifier simplement si les champs sont vide dans une champ ???

                                              -
                                              Edité par Anonyme 30 avril 2017 à 20:00:23

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                30 avril 2017 à 3:01:57

                                                C'est pas vraiment ce que j'appelle un bout de code. Je voulais savoir ce qui fait planter l'application (nil unwrapped ? Par exemple). En fait, c'est compliqué de t'aiguiller sans savoir précisément ce que tu as utilisé comme code. 

                                                Le code que tu as montré est complètement dégueulasse. T'as trouvé ça sur internet ?

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Anonyme
                                                  30 avril 2017 à 8:29:04

                                                  oui je suis d'accord avec toi... non j'ai rien pompé sur internet, c'était mon intervention pure et simple... lol

                                                  en fait dans mon uiview (page d'accueil), il n'y a pas de code car ce n'est que 2 boutons qui envoie vers les deux autres pages.

                                                  j'ai essayé de taper une fonction qui va me permettre de vérifier si mes valeurs sauvegardées sont non nul, si c´est le cas, je ferai un lien vers la page 2 sinoN j'enverrai vers text label qui indiquera qu'il faut regarder les parametre...

                                                  Voici ce que cela donne et l'erreur au chargement :

                                                  -
                                                  Edité par Anonyme 30 avril 2017 à 19:59:58

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    30 avril 2017 à 10:26:07

                                                    J'y vois un peu plus clair. Déjà ton code de verification() est beaucoup mieux que celui que tu avais donné un peu avant. Quatre nouvelles questions :

                                                    1) ça n'a rien à voir avec ton problème, mais puisque tu save des Strings, pourquoi ne pas utiliser sauvchamps1.string(forKey: "CHAMP1") ?

                                                    2 ) Es-tu sûr que ton code ne marche pas ? Il a l'air correct pour moi. As-tu mis des breakpoint ou ajouter des prints pour suivre l'éxécution de ton programme ? J'en aurais mis au moins un dans le if et un autre le else pour comprendre ce qui se passe (par ailleurs, clique sur le petit rectangle en bas à droite pour afficher la console)

                                                    3) Comment as-tu binder tes segue ?

                                                    4) ça plante au chargement ou quand tu cliques sur le bouton ?

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    Anonyme
                                                      30 avril 2017 à 11:03:20

                                                      1) je n'ai pas utilisé de string car j'avais besoin des valeurs dans une autre page et j'ai donc repris la ligne de commande c'est tout mais ok...

                                                      2) je viens de vérifier et il y avait un un bouton qui n'était pas lier donc cela plantait...

                                                      merci de votre aide...

                                                      -
                                                      Edité par Anonyme 30 avril 2017 à 19:59:35

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        1 mai 2017 à 11:09:07

                                                        @Geda : merci pour ton précieux retour sur mon problème ! ça marche, j'imagine que c'était un problème de version de swift ??

                                                        Pour le reste j'ai bien créé un controller avec un table view à l'intérieur. Je ne comprends donc pas ta remarque ?

                                                        Pour ce qui est du code c'est effectivement plus propre, j'ai pas tout saisi, mais je vais me pencher dessus.

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                        De retour au source
                                                          1 mai 2017 à 12:03:12


                                                           merci pour ton précieux retour sur mon problème ! ça marche, j'imagine que c'était un problème de version de swift ??

                                                          Effectivement. Le cours que tu suis est fait en 2.3 il me semble. La version actuelle est la 3.

                                                          Pour le reste j'ai bien créé un controller avec un table view à l'intérieur. Je ne comprends donc pas ta remarque ?

                                                          Au temps pour moi dans ce cas. J'ai cru, comme je ne voyais pas de ViewDidLoad ou de tableview. D'ailleurs je me rend compte que j'ai fait une erreur : je voulais parler de tableviewcontroller qu'il fallait éviter

                                                          -
                                                          Edité par Geda 1 mai 2017 à 12:03:52

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            2 mai 2017 à 8:54:24

                                                            Geda a écrit:

                                                            Elle est aussi exécutée quand tu bouges la map non ? C'est just le call quand tu zoomes qui te convient pas non ?

                                                            Regarde ça : http://stackoverflow.com/a/30924768


                                                            Merci beaucoup ça fonctionne super bien :)

                                                            Par contre effectivement il ne fait pas de différence entre le déplacement sur la carte et le zoom

                                                            Il faut que je trouve comment tester que l'on fait un déplacement et non un zoom

                                                            -
                                                            Edité par VincentMourareau 2 mai 2017 à 9:11:20

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                            Vincent M
                                                              2 mai 2017 à 13:36:31

                                                              Regarde mon lien. C'est ce qu'il fait

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              MOOC Swift iOS

                                                              × 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