私はUserDefaults
について知っていて、すぐに習得することができます。ユーザーがアプリケーションにログインするとき、私は彼が 'ログインしている'かどうかを確認するためのキーを保存しています。ユーザーがログアウトするたびにこのキーを解除します。SwiftのUserDefaultsから配列を正しく設定解除する方法
私はそれの設定を解除して保存して:私はまた、ユーザーの詳細情報を持つ配列を保存
UserDefaults.standard.set(true, forKey: "isUserLoggedIn");
UserDefaults.standard.set(false, forKey: "isUserLoggedIn");
。ログアウトボタンが押されたときにこれを解除する方法を知りたいですか?
詳細を保存するためのコードは次のとおりです。
let array = [storedUsername, storedFirstname, storedSurname, storedUniName, storedUniCourse, storedEmail];
UserDefaults.standard.set(array, forKey: "UserDetailsArray");
UserDefaults.standard.synchronize();
私がして削除しようとしている:
UserDefaults.standard.removeObject(forKey: "UserDetailsArray")
しかし、これは動作しませんので、私は正しいが何であるかを知りたいと思いましたこれを行う方法?ありがとうございました!
EDIT
これは、ログアウト時に私が呼ん完全な機能です。目的は、+また、私は初めてUserDefaultsを設定したので、どこかに多分バグがあるように思えたfalse
@IBAction func LogoutButtonTapped(_ sender: Any) {
UserDefaults.standard.set(false, forKey: "isUserLoggedIn");
UserDefaults.standard.removeObject(forKey: "UserDetailsArray")
UserDefaults.standard.synchronize();
self.performSegue(withIdentifier: "LoginViewController", sender: self);
}
「動作しません」と定義します。 – rmaddy
何も起こらず、値は設定されていません。私は再度ログインすると、古い値が存在するので、それを言います。 – Nouman
'removeObject'とquitの間で' synchronize'を呼び出しますか? – Willeke