0

我开发了一个与登录帐户相关的应用程序,人们也可以在我的应用程序中注册,因为这些用户信息将存储在SQLite 数据库中。

问题是,当用户退出帐户然后重新登录时,应用程序会要求用户再次登录。我不希望这种情况发生,因为它应该记住用户名和密码并且应该自动登录

有谁知道如何完成这项工作?

4

3 回答 3

5

在您的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为空,然后用户使用用户名和密码登录。如果dbID不是null登录旧的用户名和密码。

如果您在未注销的情况下退出应用程序,则将 dbID 为“1”存储在 NSUserDefaults 中并重定向视图控制器,并在登录时保存用户名和密码...保存

[[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"];
于 2012-10-16T04:51:08.073 回答
1

使用 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

}
于 2012-10-16T04:42:01.983 回答
0

可能这会对你有所帮助。

对于您当时用户第一次成功登录的情况,制作 1 个用于存储用户名、密码和用户 ID 的字典,否则为这 3 种类型制作 3 个不同的 nsuserdefault 对象。

并且当用户再次进入该登录屏幕时,检查 nsuser 默认值是否为空或具有某些值,因此如果该值存在,则它已经登录,并且您可以直接将他重定向到下一页..否则显示登录页面..

在这里我只写了逻辑而不是源代码,所以你可以自己尝试并了解更多:)..

希望这会帮助你。

于 2012-10-16T04:55:37.670 回答