Partage
  • Partager sur Facebook
  • Partager sur Twitter

Développez une application iPhone avec modèle MVC

Function boringssl_session_errorlog...

Sujet résolu
    27 février 2018 à 20:03:28

    Bonjour,

    Je suis le cours mentionné en objet et malheureusement je suis un peu bloqué.

    J'ai une erreur lors de l'exécution du code fourni par Ambroise Collon, ce code récupère les questions du Quizz du site : opentdb

    Quand je tape l'URL directement dans mon navigateur, je constate que l'API fonctionne correctement et renvoie bien une chaine de 10 questions...

    Lorsque je lance l'exécution de mon app, j'ai le message suivant qui arrive dans la console :

    2018-02-27 19:44:44.898402+0100 OpenQuizz[4200:487654] [BoringSSL] Function boringssl_session_errorlog: line 2871 [boringssl_session_read] SSL_ERROR_ZERO_RETURN(6): operation failed because the connection was cleanly shut down with a close_notify alert


    Je peux faire passer un zip de mon projet à qui veut bien me donner un petit coup de main, de mon côté, étant en apprentissage, j'ai un peu de mal à débugguer...

    D'avance merci pour votre aide...

    • Partager sur Facebook
    • Partager sur Twitter
      28 février 2018 à 8:33:33

      Salut, si l’url Est en http il faut d’abord l’autoriser Dans le plist. « Xcode allow http » sur Google. Tu devrais trouver. 

      desole je suis sur Mon téléphone et c’est Chiant d’ecrire De vrais réponses. 

      Si c’est pas ça tu peux me l’envoyer  

      -
      Edité par Geda 28 février 2018 à 8:34:34

      • Partager sur Facebook
      • Partager sur Twitter
        28 février 2018 à 14:23:04

        Salut, merci pour ta réponse.

        L'url est en https

        https://opentdb.com/api.php?amount=10&type=boolean

        Comment puis-je faire pour t"envoyer mon projet?

        D'avance merci.

        Xtof.

        • Partager sur Facebook
        • Partager sur Twitter
          28 février 2018 à 17:02:54

          Re,

          Le lien de mon app est : https://www2.wesend.com/redirect?p=vgmvt97715 il est valable jusqu'au 07/03.

          J'ai découvert par accident, en déplaçant ma view QuestionView que les questions sont bien chargées.

          Il semblerait que la partie de code jointe plus bas ne fonctionne pas.

          De ce que je comprends, de ce que je pratique en formation, l'override de la fonction viewDidLoad est censé intégrer le chargement de mes questions (questionsLoaded) mais il semblerait que le dev se poursuive et que @objc func questionsLoaded() ne soit jamais exécuté d'où un malaise avec le fonctionnement de mon app, outre le message d'erreur...

          swiftement merci pour ton expertise.


          override func viewDidLoad() {

                  super.viewDidLoad()

                  let name = Notification.Name(rawValue: "QuestionsLoaded")

                  NotificationCenter.default.addObserver(self, selector: #selector(questionsLoaded), name: name, object: nil)

          ... suite du code ...

          ... plus loin ...

          //====================================

              // MARK: - PARTIE QUI SEMBLE NE PAS FONCTIONNER???

              // Les questions sont chargéeq mais cette fonction n'est pas exécutée?

              // 2018-02-28 16:18:11.886152+0100 OpenQuizz[2297:319918] [BoringSSL] Function boringssl_session_errorlog:

              // line 2871 [boringssl_session_read] SSL_ERROR_ZERO_RETURN(6):

              // operation failed because the connection was cleanly shut down with a close_notify alert

              //====================================

              // Questions chargées

              @objc func questionsLoaded() {

                  // Masque l'indicateur de chargement

                  activityIndicator.isHidden = true

                  // Affiche le bouton Nouvelle partie

                  newGameButton.isHidden = false

                  // Affiche la question

                  questionView.title = game.currentQuestion.title

              }

          • Partager sur Facebook
          • Partager sur Twitter
            28 février 2018 à 18:15:21

            J’ai pas regardé le projet encore mais lances tu la notification « questionsLoaded » à un moment ?

            Tu utilises le design pattern Observer. Et dans le viewdidload tu dis que lorsque tu reçois la notification « questionsLoaded » alors il faut appeler la méthode « questionsLoaded ». 

            Je comprend pas vraiment ce que tu fait dans la questionLoaded. Dans ton message tu indiques que c’est Censé charger les questions pourtant son nom indique qu´elle soit s´exexuter une fois qu’elles sont chargees. 

            En bref, ton problème est mal décrit. Je comprendrais peut etrz en regardant le code. 

            EDIT : 

            Comme je disais, j'ai pas compris ton problème. En revanche, si tu ajoutes : 

            NotificationCenter.default.post(Notification(name: Notification.Name(rawValue: "QuestionsLoaded")))
            
            Dans la méthode receivequestions, alors tu devrais voir la question dans le cadre. En espérant que ce soit ce que tu cherches
            PS : Je pense pas qu'utiliser les observer soit une bonne méthode. Ça complexifie la lecture du code (il faut parcourir plusieurs fichiers pour trouver tous les appels possibles et c'est toujours possible d'en rater quelques un) ainsi que le debuggage (même chose que précedemment + impossible d'avoir la hiérarchie des appels avec un breakpoint) et c'est error-prone au niveau du nom de la notification (à moins de passer par une enum. Qui est un must-have selon moi pour ce genre de design). Je connais pas les contraintes de l'exercice, mais il faut peut-être envisager une autre architecture. Pourquoi la gestion du jeu est à moitié dans le Model et à moitié dans le controller ? Ça n'a pas de sens. Si toute la gestion était dans le controller, tu n'aurais pas la problématique des observer. 

            -
            Edité par Geda 1 mars 2018 à 15:21:46

            • Partager sur Facebook
            • Partager sur Twitter
              1 mars 2018 à 15:39:31

              Salut,

              Ca ne fonctionne pas mieux, j'ai toujours la même erreur et la partie de code de @objc func questionsLoaded() n'est jamais exécutée.

              Ton PS me chiffonne un peu car je ne fais que suivre une formation, en essayant de faire tourner ce qui est demandé comme c'est demandé.

              La formation insiste beaucoup sur l'aspect MVC du développement et est censée l'apprendre???

              Comme je suis pragmatique, j'ai trouvé une solution qui va me permettre de récupérer un code qui tourne alors je vais voir comment mes petits camarades de formation ont fait.

              Merci pour ton aide.

              Tu développes des applications iPhone? A ton compte ou pour une société de services?

              • Partager sur Facebook
              • Partager sur Twitter
                1 mars 2018 à 17:40:38

                En fait l'erreur semble venir du serveur, tu n'as aucun contrôle dessus malheuresement. Ne t'en préoccupe pas trop, ce n'est pas ça qui te bloque. Techniquement (et j'ai essayé) si tu envoies la notification, la méthode doit s'éxécuter. Vérifie que tu n'ai pas fait d'erreurs en tapant le String correspondant au nom de la notification.

                Entre temps, j'ai regardé le cours, la partie qui correspond à cette notification est ici : https://openclassrooms.com/courses/concevez-une-application-iphone-avec-le-modele-mvc/envoyez-les-questions-au-controleur

                Dans mon PS, j'ai été un peu dur en disant que ce n'était pas du MVC. J'ai édité ma réponse pour supprimer ce passage. A froid, c'est cohérent. J'aime pas les Notifications, voila tout. Le tout serait plus lisible avec des closures. Et je suis pas convaincu par la classe game. J'imagine que chacun a sa méthodologie.. 

                Pour ta dernière question, oui je suis dans une société de service et oui je fais fais des apps iPhone.

                • Partager sur Facebook
                • Partager sur Twitter
                  1 mars 2018 à 18:13:37

                  OK, merci encore.

                  Effectivement, même la soluce et le travail de mes petits camarades comportent cette erreur qui ne gène en rien le bon déroulement de l'app.

                  @+

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Développez une application iPhone avec modèle MVC

                  × 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