检查用户是否有效解析 (Swift)
Check if user is valid Parse (Swift)
我现在的问题是,如果数据库中的用户发生某些变化(在测试期间手动更改),客户端缓存的用户不会被更新。我知道我需要使用 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()
这在大多数情况下都有效,但如果用户从数据库中更新或删除,应用程序将继续运行并稍后由于错误 updating/saving 个对象而崩溃。
我建议将 fetchInBackground
与完成块一起使用。
PFUser.current()?.fetchInBackground(block : { (user, error) in
if let user = user {
//show Main
}else {
//showLogin
}
})
通过这种方式,您可以在获取用户后执行您的逻辑。
我现在的问题是,如果数据库中的用户发生某些变化(在测试期间手动更改),客户端缓存的用户不会被更新。我知道我需要使用 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()
这在大多数情况下都有效,但如果用户从数据库中更新或删除,应用程序将继续运行并稍后由于错误 updating/saving 个对象而崩溃。
我建议将 fetchInBackground
与完成块一起使用。
PFUser.current()?.fetchInBackground(block : { (user, error) in
if let user = user {
//show Main
}else {
//showLogin
}
})
通过这种方式,您可以在获取用户后执行您的逻辑。