如何在 Core Data 中检查给定用户名的密码? [关闭]
Posted
技术标签:
【中文标题】如何在 Core Data 中检查给定用户名的密码? [关闭]【英文标题】:How to check the password for a given username in Core Data? [closed] 【发布时间】:2012-01-30 19:35:11 【问题描述】:我有一个用户名 [字符串],我想检查给定用户名的密码。我该怎么做?
【问题讨论】:
【参考方案1】:NSString *username = <#Username#>;
NSManagedObjectContext *context = <#Context#>;
NSFetchRequest *fetchRequest = [[[NSFetchRequest alloc] init] autorelease];
fetchRequest.entity = [NSEntityDescription entityForName:@"User" inManagedObjectContext:context]
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"self.name == %@", username];
fetchRequest.fetchLimit = 1;
NSError *error = nil;
NSArray *users = [context executeFetchRequest:fetchRequest error:&error];
if (users.count > 0)
NSString *password = [[users objectAtIndex:0] valueForKey:@"password"];
else if (error != nil)
NSLog(@"User with given username does not exist.");
else
NSLog(@"Error fetching user: %@", error);
【讨论】:
【参考方案2】:要在应用程序中查询给定用户名的密码的核心数据,您需要在执行查询时使用谓词。此示例假定您的实体名为 Users,您要查找的用户名名为 MyUser。
NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"Users"
inManagedObjectContext:self.managedObjectContext];
NSFetchRequest *theRequest = [NSFetchRequest new];
[theRequest setEntity:entityDesc];
[theRequest setPredicate:[NSPredicate predicateWithFormat:@"username == %@",@"MyUser"]];
NSError *error;
NSArray *returnResults = [self.managedObjectContext executeFetchRequest:theRequest error:&error];
if (returnResults.count > 0)
NSManagedObject *MyUser = [returnResults objectAtIndex:0];
NSString *password = [MyUser valueForKey:@"password"];
else if (error != nil)
//Error
else
//Error
【讨论】:
以上是关于如何在 Core Data 中检查给定用户名的密码? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
java - 如何使用给定的LdapContext检查ldap中的用户密码?
如何检查用户密码ID与下面的mysqli代码中的给定密码相同,这不起作用