检查用户是否有效Parse(Swift)

时间:2017-04-20 19:18:18

标签: ios swift authentication parse-platform

我现在的问题是,如果数据库中的用户发生了变化(测试期间手动更改),则不会更新客户端缓存用户。我知道我需要使用fetch()或其中一个变体(背景,如果需要),但我真的不知道如何。

以下是我在AppDelegate中的当前代码,用于确定是否显示登录屏幕或继续使用主应用程序。

        // Decide which controller to go to
        self.window = UIWindow.init(frame: UIScreen.main.bounds)

        var sb: UIStoryboard? = nil
        if (PFUser.current() != nil) && (PFUser.current()?.isAuthenticated)! {
            sb = UIStoryboard(name: "Main", bundle: nil)
        } else {
            sb = UIStoryboard(name: "SetupUser", bundle: nil)
        }

        let vc = sb?.instantiateInitialViewController()
        self.window?.rootViewController = vc
        self.window?.makeKeyAndVisible()

这在大多数情况下都有效,但如果用户从数据库更新或删除,应用程序将继续运行,并在以后因更新/保存对象时出错而崩溃。

1 个答案:

答案 0 :(得分:1)

我建议将fetchInBackground与完成块一起使用。

 PFUser.current()?.fetchInBackground(block : { (user, error) in
          if let user = user {
             //show Main
          }else {
             //showLogin
           }

    })

这样,您可以在获取用户后执行逻辑。