Ios 使用parse.com在后台注销

Ios 使用parse.com在后台注销,ios,xcode,swift,parse-platform,Ios,Xcode,Swift,Parse Platform,我对创建应用程序很陌生,我正在尝试创建一个应用程序,使用parse.com使用Xcode 7和Swift登录和注销。到目前为止,我已经制作了注册和登录屏幕以及主屏幕,到目前为止,只有一个注销按钮。我有一个名为“signOut”的iAction方法,当按下signOut按钮时会触发该方法。在它里面,我只有两行代码: self.performSegueWithIdentifier("segue that goes back to login screen", sender: self) PFUser

我对创建应用程序很陌生,我正在尝试创建一个应用程序,使用parse.com使用Xcode 7和Swift登录和注销。到目前为止,我已经制作了注册和登录屏幕以及主屏幕,到目前为止,只有一个注销按钮。我有一个名为“signOut”的iAction方法,当按下signOut按钮时会触发该方法。在它里面,我只有两行代码:

self.performSegueWithIdentifier("segue that goes back to login screen", sender: self)
PFUser.logOutInBackground()

当连接到internet时,此功能正常工作,但脱机时,当应用程序尝试连接到网络时,屏幕会冻结10-20秒,然后切换回登录屏幕。我希望它切换到登录屏幕,然后注销,我不明白为什么它没有。我甚至尝试过将
PFUser.logoutingbackground()
移动到我的登录屏幕的视图控制器的viewwillbeen和viewDidLoad方法,但仍然存在相同的问题。也许最让我困惑的是,在应用程序尝试连接到网络时,注销命令后的任何代码都会继续执行,即使视图没有更改。在此问题上的任何帮助都将不胜感激。谢谢。

您需要确保PerformsgueWithIdentifier在负责更新UI的主线程上运行

   dispatch_async(dispatch_get_main_queue()) {
self.performSegueWithIdentifier("segue that goes back to login screen", sender: self)
}

PFUser.logOutInBackground()
试试这个:

PFUser.logOutInBackgroundWithBlock({ (error: NSError?) -> Void in
    if let error = error {
        // Handle error
    } else {
        self.performSegueWithIdentifier("unwindToLoginViewController", sender: self)
    }
})