我开发了一个与登录帐户相关的应用,人们也可以在我的应用中注册,因为这些用户信息将存储在 SQLite数据库中
问题在于,当用户注销然后重新登录时,该应用会要求用户再次登录。我不希望这种情况发生,因为它应该记住用户名和密码,并且应该自动登录。
有谁知道如何完成这项工作?
答案 0 :(得分: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
则登录旧用户名和密码。
如果您退出而没有注销应用程序,则在NSUserDefaults中存储dbID为“1”并重定向视图控制器并在您的登录时间中保存用户名和密码...用于保存
[[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"];
答案 1 :(得分: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
}
答案 2 :(得分:0)
可能这会对你有帮助。
当用户第一次成功登录时你的条件制作一个用于存储用户名,密码和用户ID的字典,为这3种类型制作3个不同的nsuserdefault对象。
当用户再次进入该登录屏幕时,检查nsuser默认值是否为空或具有某个值,因此如果值已存在,则表示已经登录并且您可以直接将其重定向到下一页..否则显示登录页面..
这里我只写了逻辑而不是源代码所以你可以试一试自己并了解更多:)..
希望这会对你有所帮助。