0
私の問題は、データベース内のユーザーに関する何かが変更された場合(テスト中の手動変更)、クライアントサイドのキャッシュされたユーザーが更新されていないことです。私はfetch()
か、バリアントの1つ(バックグラウンド、必要に応じて)を使用する必要があることを知っていますが、実際にはわかりません。ユーザーが有効かどうかを確認します。
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()
これは、ほとんどの時間動作しますが、ユーザーが更新またはフォーム削除された場合、DBアプリがオブジェクトを保存/更新エラーのため、後にクラッシュを継続します。
空白の画面だけでなくプレースホルダコントローラにコードを配置するのではなく、プレースホルダビューを使用する必要がありますか? – Minebomber
はい、それはユーザーエクスペリエンスを向上させます。あなたが持っているLaunchScreen Viewと同じにすることができますが、フェッチが完了するまでユーザを「気を散らして」Main/Loginを続けるアニメーションを作ることもできます – unniverzal
ありがとうございます。私はこれに似たアイデアを持っていましたが、実装方法を理解できませんでした。 – Minebomber