0

ユーザーの資格情報、名前、PINを検証するMacアプリケーションがあります。を使用して、特定CoreDataのからを参照するにはどうすればよいですか?たとえば、データベースでは、John DoeのPINは1234です。ユーザーが名前を選択すると、PINを入力して、ログインボタンを押します。ピンがデータベースにあるものと一致する場合、ユーザーは続行できます。すべての設定が完了し、準備が整いました。CoreDataからPIN値を取得する方法がわかりません。次に、それをユーザーが入力した文字列値と比較して、ユーザーの資格情報を検証します。それはおそらく単純なことですが、私には理解できません。エンティティ名:属性:'employeeName'&'employeePin'。keyvalueCoreDataEmployee

- (IBAction)loginButton:(NSButton *)sender {
NSString *name = self.chooseNameBox.selectedCell;
NSString *pass = self.pinEntryField.stringValue;

context.???
}

どんな助けでも大歓迎です。

4

1 に答える 1

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に同意します。

于 2013-03-13T14:24:49.657 に答える