2017-08-10 192 views
0

在我的應用程序初始視圖控制器的viewDidLoad()我運行此:PFUser.current()總是返回零

let currentUser = PFUser.current() 

     if currentUser != nil{ 

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

currentUser始終是零。

根據最新的解析服務器Ios SDK配置解析客戶端後,我在AppDelegate.Swift中運行PFUser.enableAutomaticUser()。這應該使它在用戶登錄時保持登錄狀態,除非運行註銷命令。我不知道爲什麼這不會發生。 ?

回答

0

許多調試後,我意識到,PFUser.enableAutomaticUser()是正常。問題在於self.performSegue(withIdentifier: "toTabs", sender: self)未被分派到主隊列。我解決了這個問題,通過改變我的代碼:

let currentUser = PFUser.current() 

    if currentUser?.username != nil{ 

     print(currentUser!) 

     DispatchQueue.main.async(){ 

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

     } 

    }else{ 

     print("No current User") 
    } 

感謝,對所有你的幫助,我很抱歉耽誤你們時間了這一點。

0

我有同樣的問題運行解析版本2.2(或以上,不知道),你在哪裏調用PFUser.enableAutomaticUser(),我解決它通過調用它的applicationID作出後右:

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