如何在 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代码中的给定密码相同,这不起作用

Core Data 默认使用线程吗?

在 Core Data 中,如何检查错误是不是是由“磁盘已满”引起的?

如何在 .Net Core MVC 中发布

如何检查关系是不是已建立 - Core Data