Partage
  • Partager sur Facebook
  • Partager sur Twitter

Swift login json chargement

    12 décembre 2018 à 0:29:25

    Bonjour,

    Cela fais actuellement plusieurs jours que je suis bloquer devant le même problème j'ai crée une page de login dans mon application tout fonctionne correctement l'or de la déconnexion alors que pour la connexion c'est plus compliquer au moment de la connexion l'application mais un temps fou a ce log

    Les erreurs qu'il m'affiche dans la console sont 

    ainsi que mon code lorsque la connexion est réussi

    init(json: [String: Any]) {
                error = json["error"] as? Int ?? -1
                id = json["id"] as? Int ?? -1
                login = json["login"] as? String ?? ""
                password = json["password"] as? String ?? ""
                mail = json["mail"] as? String ?? ""
            }



    self.userConnect.set(user.id, forKey: "id");
                            self.userConnect.set(user.login, forKey: "login");
                            self.userConnect.set(user.password, forKey: "password");
                            self.userConnect.set(user.mail, forKey: "mail");
                            self.userConnect.set(1, forKey: "loging");
                            self.userConnect.synchronize();
                            self.dismiss(animated: true, completion: nil); or self.performSegue(withIdentifier: "menuViewController", sender: self)
    Merci

    -
    Edité par Jeanpopp 12 décembre 2018 à 17:59:08

    • Partager sur Facebook
    • Partager sur Twitter
      12 décembre 2018 à 9:49:47

      Salut,

      Deux choses sur le format : Tu peux faire un effort sur l'orthographe ? "mon code l'ors que la connexion est réussi" mon cerveau a reboot plusieurs fois pour comprendre le sens. Ton screenshot de ton "erreur" (en vrai c'est un warning) est tronqué, c'est peu exploitable. Tu pourrais le mettre dans des balises codes.

      Sur le coeur du problème : Tu as l'air de mettre à jour les données de l'écran depuis le background thread. Or, il faut mettre à jour l'UI UNIQUEMENT sur le thread principal. Tu peux montrer comment tu fais ton animation ?

      Si tu as quelque chose comme ça :

      DispatchQueue.global.async {
          // Ton code qui connecte l'user
          UIView.animate(withDuration: 1) {
              self.backgroundColor = .red
          }
      }
      
      

      Tu devrais avoir à la place quelque chose comme ça : 

      DispatchQueue.global.async {
        // Ton code qui connecte l'user
        DispatchQueue.main.async {
           UIView.animate(withDuration: 1) {
               self.backgroundColor = .red
           }
        }
      }

      Bien sur, c'est certainement pas ton code, mais à défaut de savoir ce que tu as fait exactement, ça te donne une idée du problème.

      • Partager sur Facebook
      • Partager sur Twitter
        12 décembre 2018 à 16:29:16

        Grace à ton aide j'ai pue régler mon problème je poste le code corriger 
        Merci
        let user = User(json: myJSON as! [String : Any])
                            
                            if user.error == 1 {
                                
                                DispatchQueue.global(qos: .userInteractive).async{
                                    NSLog("Login Ok");
                                    
                                    self.userConnect.set(user.id, forKey: "id");
                                    self.userConnect.set(user.login, forKey: "login");
                                    self.userConnect.set(user.password, forKey: "password");
                                    self.userConnect.set(user.mail, forKey: "mail");
                                    self.userConnect.set(1, forKey: "loging");
                                    self.userConnect.synchronize();
                                    
                                    DispatchQueue.main.async {
                                        //switching the screen
                                        let profileViewController = self.storyboard?.instantiateViewController(withIdentifier: "MenuViewController") as! MenuViewController
                                        self.navigationController?.pushViewController(profileViewController, animated: true)
                                    }
                                }
                            }
                            else{
                                NSLog("Login error")
                                
                                self.idIncorrect()
                            }

        -
        Edité par Jeanpopp 12 décembre 2018 à 21:15:19

        • Partager sur Facebook
        • Partager sur Twitter

        Swift login json chargement

        × 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