【问题标题】:Check if user is valid Parse (Swift)检查用户是否有效 Parse (Swift)
【发布时间】:2017-04-20 19:18:17
【问题描述】:

我现在的问题是,如果数据库中的用户发生了一些变化(测试期间手动更改),客户端缓存的用户不会被更新。我知道我需要使用 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()

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

【问题讨论】:

    标签: ios swift authentication parse-platform


    【解决方案1】:

    我建议使用带有完成块的fetchInBackground。

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

    这样你在获取用户后执行你的逻辑。

    【讨论】:

    • 我应该有一个占位符视图,因为它这样做不只是有一个空白屏幕,然后将代码放在占位符控制器中吗?
    • 是的,这会带来更好的用户体验。它可以与您拥有的 LaunchScreen 视图相同,但您也可以制作动画以“分散”用户的注意力,直到获取完成,然后继续 Main/Login
    • 谢谢。我有一个类似的想法,但无法弄清楚如何实现它。
    猜你喜欢
    • 1970-01-01
    • 2017-03-09
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多