如何在CoreData中匹配NSSet的对象值?

我做了一个核心数据一个关系。 一个人可以拥有多个银行账户。

现在

我已添加与人员关联的人员和银行帐户。

代码是

@synthesize setContainer,textField; - (void)viewDidLoad { [super viewDidLoad]; self.setContainer = [[NSMutableSet alloc]init]; appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; NSEntityDescription *entityPerson = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:appDelegate.managedObjectContext]; NSManagedObject *newPerson = [[NSManagedObject alloc]initWithEntity:entityPerson insertIntoManagedObjectContext:appDelegate.managedObjectContext]; [newPerson setValue:@"Steve" forKey:@"name"]; [newPerson setValue:@"UK" forKey:@"address"]; [newPerson setValue:@123456 forKey:@"mobile_no"]; NSEntityDescription *entityAccount = [NSEntityDescription entityForName:@"Account" inManagedObjectContext:appDelegate.managedObjectContext]; NSManagedObject *newaccount = [[NSManagedObject alloc]initWithEntity:entityAccount insertIntoManagedObjectContext:appDelegate.managedObjectContext]; [newaccount setValue:@98765432100 forKey:@"acc_no"]; [newaccount setValue:@"Saving" forKey:@"acc_type"]; [newaccount setValue:@1000000 forKey:@"balance"]; // Add Address to Person setContainer = [newPerson mutableSetValueForKey:@"person"]; [self.setContainer addObject:newaccount]; NSLog(@"%@",self.setContainer); // Save Managed Object Context NSError *error = nil; if (![newPerson.managedObjectContext save:&error]) { NSLog(@"Unable to save managed object context."); NSLog(@"%@, %@", error, error.localizedDescription); } 

我的问题是

当我在文本字段上input我的手机号码并按下“查看您的余额”button时,我的余额应该是打印在日志里,我已经input了核心数据值。

图像是

在这里输入图像说明

产量

在这里输入图像说明

您可以使用NSPredicate获取基于选定filter的实体,在您的情况下电话号码

 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"mobile_no = %@",phoneNumber]; NSFetchRequest *fetchRequest = [NSFetchRequest new]; [fetchRequest setPredicate:predicate]; NSError *error; NSArray *result = [managedObjectContext executeFetchRequest:fetchRequest error:&error]; 

基于此,如果用户拥有多个银行帐户,则可以执行计算金额,因为您已经拥有所有详细信息(假设他在他的所有银行帐户上都使用相同的电话号码)

这里是关于NSPredicate的文档

一个好的备忘单,以及可以在这里find