Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 基于关系表-CoreData从父表获取记录_Objective C_Ios_Core Data_Nspredicate_Nsfetchrequest - Fatal编程技术网

Objective c 基于关系表-CoreData从父表获取记录

Objective c 基于关系表-CoreData从父表获取记录,objective-c,ios,core-data,nspredicate,nsfetchrequest,Objective C,Ios,Core Data,Nspredicate,Nsfetchrequest,对不起,如果标题没有任何意义 让我进一步解释一下 我有这个CoreData应用程序,我在CoreData方面相对较新。我有两张桌子。一个是预算,一个是支出。所以预算表有一个名为TotalBudget的字段。现在,我在支出表中有不同的行,这些行是用户在一段时间内输入的,这个表有一个名为“个人支出”的字段 现在我希望做的是只得到个人支出总额小于总预算表的预算。在SQL语言中,它类似于以下内容 选择BudgetName 预算外 其中TotalBudget预算金额: NSFetchRequest *fe

对不起,如果标题没有任何意义

让我进一步解释一下

我有这个CoreData应用程序,我在CoreData方面相对较新。我有两张桌子。一个是预算,一个是支出。所以预算表有一个名为TotalBudget的字段。现在,我在支出表中有不同的行,这些行是用户在一段时间内输入的,这个表有一个名为“个人支出”的字段

现在我希望做的是只得到个人支出总额小于总预算表的预算。在SQL语言中,它类似于以下内容

选择BudgetName 预算外 其中TotalBudget<从支出中选择SumIndividualBudget,其中BudgetID=Budget.BudgetID

我如何在核心数据中实现这一点?我有从一个表中检索数据的代码,我可以使用NSPredicate根据BudgetStartDate和BudgetEndDate筛选记录,但我如何实现这样的功能呢


感谢

假设以下对象模型:

Budget
--amount (decimal)
--spend (relationship to IndividualSpend object)

IndividualSpend
--amount (decimal)
这将获得一组预算实体,其中支出金额为>预算金额:

NSFetchRequest *fetch = [[NSFetchRequest alloc] init];
fetch.entity = [managedObjectModel objectForKey:@"Budget"];
fetch.predicate = [NSPredicate predicateWithFormat:@"spend.@sum.amount > amount"];

NSError *error = nil;
NSArray *results = [context executeFetchRequest:fr error:&error];
if (error) {
  NSLog(@"ERROR: %@", error);
}
NSLog(@"Results: %@", results);