【发布时间】:2014-01-03 10:38:09
【问题描述】:
我是 Core Data 的新手。我已经开发了一个应用程序。在我的应用程序中,我有注册、登录、忘记密码表格。
在注册表中我写这个代码来注册。
NSEntityDescription *entitydesc = [NSEntityDescription entityForName:@"User" inManagedObjectContext:context];
NSManagedObject *newuser = [[NSManagedObject alloc]initWithEntity:entitydesc insertIntoManagedObjectContext:context];
[newuser setValue:self.registerUsername.text forKey:@"username"];
[newuser setValue:self.registerPassword.text forKey:@"password"];
[newuser setValue:self.registerConfirmPassword.text forKey:@"confirmpassword"];
[newuser setValue:self.registerMobileNumber.text forKey:@"mobilenumber"];
NSError *error;
[context save:&error];
在登录表单中我写了这段代码:
NSEntityDescription *entitydesc = [NSEntityDescription entityForName:@"User" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc]init];
[request setEntity:entitydesc];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"username like %@ and password like %@",self.logUsername.text,self.logPassword.text];
[request setPredicate:predicate];
NSError *error;
NSArray *matchingData = [context executeFetchRequest:request error:&error];
if(matchingData.count<=0)
{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Error!" message:@"Username and password does not match" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
}
else
{
NSString *username;
NSString *password;
for(NSManagedObject *obj in matchingData)
{
username = [obj valueForKey:@"username"];
password = [obj valueForKey:@"password"];
}
SecurityHome *securityhome = [[SecurityHome alloc]init];
[self.navigationController pushViewController:securityhome animated:YES];
}
}
两者都工作正常。如果用户输入的用户名和手机号码正确,我现在想在忘记密码页面显示密码。我怎样才能做到这一点?
【问题讨论】:
-
希望永远不会。您最好存储加密的密码,如果用户忘记了他的密码,您可以向他发送一个新密码。但我不会使用将我的纯密码存储在数据库中的应用程序......
-
我支持 Dehlen。你真的不应该这样做。无论如何,您可能需要此信息用于其他目的,所以我已经回答了您的问题
标签: ios iphone objective-c core-data ios5