アカウントへのサインインに関連するアプリを開発しました。これらのユーザー情報はSQLite データベースに保存されるため、ユーザーもアプリに登録できます。
問題は、ユーザーがアカウントからログアウトしてから再ログインすると、アプリがユーザーに再度ログインするように要求することです。ユーザー名とパスワードを記憶し、自動的にログインする必要があるため、これが発生したくありません。
これを行う方法を知っている人はいますか?
AppDelegate.m
ファイルに、メソッドを追加しますNSUserDefaults
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if ([standardUserDefaults valueForKey:@"dbID"]==nil) {
[standardUserDefaults setObject:@"1" forKey:@"dbID"];
[standardUserDefaults synchronize];
}
}
また、ユーザー名とパスワードを正しく保存して、NSUserDefaults
. ログアウト機能のために、アプリケーションをログアウトしたい場所にコードログアウトコードを追加します...
-(IBAction)Logout :(id)sender {
[[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@"dbID"];
[NSUserDefaults resetStandardUserDefaults];
}
ログイン時にdbID
nullであることを確認してから、ユーザー名とパスワードを使用してユーザーログインします。古いユーザー名とパスワードでログインしてdbID
いない場合。null
アプリケーションをログアウトせずに終了する場合は、dbID を NSUserDefaults に「1」として保存し、View Controller をリダイレクトして、ログオン時にユーザー名とパスワードを保存します...保存のために
[[NSUserDefaults standardUserDefaults] setValue:@"Your text field value" forKey:@"Username"];
[[NSUserDefaults standardUserDefaults] setValue:@"Your text field value" forKey:@"password"];
読む
NSString * _UserName = [[NSUserDefaults standardUserDefaults] stringForKey:@"Username"];
NSString * _password = [[NSUserDefaults standardUserDefaults] stringForKey:@"password"];
ユーザー名とパスワードを NSUserDefaults に保存すると、ユーザー名とパスワードが NSUserDefaults に保存されていることが示されます。
ボタンでアプリケーションをログアウトした場合は、NULL のユーザー名とパスワードを作成して NSUserDefaults を保存します。
[[NSUserDefaults standardUserDefaults] setValue:@"" forKey:@"Username"];
[[NSUserDefaults standardUserDefaults] setValue:@"" forKey:@"password"];
NSUserDefaults を使用します。これはうまくいきます
NSUserDefaults *rememberDefault = [NSUserDefaults standardUserDefaults];
if ([[rememberDefault valueForKey:@"Autologin"] isEqualToString:@"Autologin_on"]) {
btnAutoLogin.selected =NO;
}else {
btnAutoLogin.selected =YES;
}
あなたのボタン アクション メソッドで:
-(IBAction)btnOnOffSwitch:(UIButton *)sender{
if (sender.selected) {
sender.selected = NO;
}else {
sender.selected = YES;
}
}
確認したい場合は、これを使用します:
NSUserDefaults *rememberDefault = [NSUserDefaults standardUserDefaults];
if([[rememberDefault valueForKey:@"Autologin"] isEqualToString:@"Autologin_on"])
{
write your code here. to push directly to your home screen. this should be checked in your login screen
}
これはあなたを助けるかもしれません。
ユーザーがその時点で初めてログインに成功したときの状態については、 username 、 password 、およびユーザー ID を格納するための 1 つの辞書を作成します。それ以外の場合は、この 3 つのタイプに対して 3 つの異なる nsuserdefault オブジェクトを作成します。
ユーザーがそのログイン画面に再び来たときに、nsuser のデフォルト値が空であるか、何らかの値があることを確認してください。値が存在する場合は、すでにログインしており、次のページに直接リダイレクトできます..それ以外の場合は、ログインページを表示します..
ここでは、ソースコードではなくロジックのみを記述しているので、自分で試して詳細を学ぶことができます:)。
これがあなたを助けることを願っています。