2015-06-29 3 views
10

Ich baue eine App mit Parse in swift. PFUser.currentuser() gibt immer nil zurück, nachdem die App gestoppt wurde und erneut ausgeführt wird. Ich verwende den iOS-Simulator und der lokale Datenspeicher ist aktiviert. ich so etwas wie dieses bin mit -iOS mit Parse. PFUser.currentuser() wird nicht zwischengespeichert. Gibt 0 nach dem Neustart der App zurück

if PFUser.currentuser() == nil { 
// Perform segue to login screen 
} 

Und für die Anmeldung Ich bin mit

PFUser.loginWithUsernameInBackground(...) 

Current bleibt, bis die App neu gestartet wird, wonach es zurückgesetzt auf Null. Ich habe sogar versucht, den aktuellen Benutzer anzuheften, aber es funktioniert nicht. Wie kann ich überprüfen, ob der aktuelle Benutzer lokal zwischengespeichert wird. Jede Hilfe wäre willkommen. Vielen Dank.

+2

Haben Sie eine Lösung gefunden? – Klemens

+0

Habe das gleiche Problem hier. – fatuhoku

+0

Versuchen Sie, den Anruf mit einer Blockrückgabe zu tätigen. Erhalten Sie den erwarteten Benutzer und einen Null-Fehler zurück? Stellen Sie außerdem sicher, dass dieser Aufruf nach dem Aufruf von setApplicationId erfolgt. – Jeremiah

Antwort

1

Sind Sie sicher, dass Sie den Simulator nicht zurücksetzen und auf dem gleichen laufen? Es sollte den aktuellen Benutzer nicht löschen. Ist es möglich, Sie

PFUser.logout() 

in 'applicationWillTerminate' in AppDelegate oder anderswo fordern?

+0

Nein, nicht mit PFUser.logout(). Aber ich verwende Kerndaten. Meine AppWillTerminate enthält also einen Aufruf von self.saveContext(). – shubhamrawal7

2

Für mich ist der Grund einfach der folgende Teil wird nicht ausgeführt. Vorsicht bei Multithread. Normalerweise ist das der Grund.

Parse.setApplicationId("xx","xx")