2017-08-10 2 views
0

Dans le viewDidLoad() du contrôleur de vue initial dans mon application je lance ceci:PFUser.current() retourne toujours nul

let currentUser = PFUser.current() 

     if currentUser != nil{ 

     self.performSegue(withIdentifier: "toTabs", sender: self) 
    } 

currentUser est toujours nul.

Je cours PFUser.enableAutomaticUser() dans le AppDelegate.Swift après avoir configuré le client d'analyse selon le dernier serveur d'analyse IOS SDK. Cela devrait faire en sorte que chaque fois qu'un utilisateur est connecté, il reste connecté sauf si une commande de déconnexion est exécutée. Je n'ai aucune idée de pourquoi cela ne se passe pas. ?

Répondre

0

Après le débogage beaucoup, je réalisais que PFUser.enableAutomaticUser() fonctionnait normalement. Le problème était que le self.performSegue(withIdentifier: "toTabs", sender: self) n'était pas distribué dans la file d'attente principale. Je fixe en changeant mon code pour:

let currentUser = PFUser.current() 

    if currentUser?.username != nil{ 

     print(currentUser!) 

     DispatchQueue.main.async(){ 

     self.performSegue(withIdentifier: "toTabs", sender: self) 

     } 

    }else{ 

     print("No current User") 
    } 

Merci, à vous tous pour votre aide, et je suis désolé d'avoir perdu votre temps avec cela.

0

J'ai eu le même problème exécutant la version Parse 2.2 (ou plus, pas sûr), où avez-vous appelé le PFUser.enableAutomaticUser(), je l'ai résolu en appelant juste après la ApplicationID a été fait:

Parse.setApplicationId(parseApplicationID, clientKey:parseClientKey) 
PFUser.enableAutomaticUser() 
0

I Activez le partage de trousseaux, nettoyez, supprimez l'application et réinstallez-la pour que les choses fonctionnent correctement.

Voici steps to enable keychain.