检查用户是不是有效 Parse (Swift)
Posted
技术标签:
【中文标题】检查用户是不是有效 Parse (Swift)【英文标题】: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()
这在大多数情况下都有效,但如果用户从数据库中更新或删除,则应用将继续运行并在稍后由于更新/保存对象时出错而崩溃。
【问题讨论】:
【参考方案1】:我建议使用带有完成块的fetchInBackground
。
PFUser.current()?.fetchInBackground(block : (user, error) in
if let user = user
//show Main
else
//showLogin
)
这样你在获取用户后执行你的逻辑。
【讨论】:
我应该有一个占位符视图,因为它这样做不只是有一个空白屏幕,然后将代码放在占位符控制器中吗? 是的,这会带来更好的用户体验。它可以与您拥有的 LaunchScreen 视图相同,但您也可以制作动画以“分散”用户的注意力,直到获取完成,然后继续 Main/Login 谢谢。我有一个类似的想法,但无法弄清楚如何实现它。以上是关于检查用户是不是有效 Parse (Swift)的主要内容,如果未能解决你的问题,请参考以下文章