寻找价值和键入Mac App

时间:2013-03-13 14:12:53

标签: xcode macos core-data key-value-coding

我有一个验证用户凭据的Mac应用程序,Name&销。使用CoreData,如何引用特定key的{​​{1}}?例如,在数据库中,John Doe的PIN为1234.当用户选择他们的名字时,他们输入他们的PIN并点击登录按钮。如果引脚与value在其数据库中的匹配,则允许用户继续。我已经准备好了所有设置,我只是无法弄清楚如何从Core Data获取PIN值。然后,我将它与用户输入的字符串值进行比较,以验证用户的凭据。它可能很简单,但我无法弄清楚。实体名称:CoreData属性:'employeeName'& 'employeePin'。

Employee

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您需要设置这样的获取请求:

NSError *aError = nil;
NSEntityDescription *entityDescription = [NSEntityDescription
                                          entityForName:@"Employee" inManagedObjectContext:self.currentManagedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
NSPredicate* entriesPredicate = [NSPredicate predicateWithFormat:@"employeeName = %@", name];
NSSortDescriptor* sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];

[request setPredicate:entriesPredicate];
[request setSortDescriptors:@[sortDescriptor]];

NSArray *employeeArray = [self.currentManagedObjectContext executeFetchRequest:request error:&aError];

EmployeeObject *retrievedEmployee = [employeeArray lastObject];
NSString *retrievedPin = retrievedEmployee.employeePin;

另外,我同意@trojanfoe你需要在将引脚插入数据库之前对其进行散列。