objective-c - 根据关系表从父表获取记录 - CoreData

标签 objective-c ios core-data nspredicate nsfetchrequest

抱歉,如果标题没有任何意义。

让我进一步解释一下。

我有这个 CoreData 应用程序,而且我对 CoreData 还比较陌生。我有两张 table 。一是预算,一是支出。因此预算表有一个名为 TotalBudget 的字段。现在,我在支出表中有不同的行,用户随时间输入这些行,并且该表有一个名为“个人支出”的字段。

现在我希望做的是只获得个人支出总和小于总预算(预算表)的预算。在 SQL 语言中,它会像下面这样

选择预算名称 从预算来看 其中 TotalBudget <(从预算 ID = 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);

关于objective-c - 根据关系表从父表获取记录 - CoreData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6493907/

相关文章:

ios - 如何从 NSArray 中删除具有相同值的重复对象

iphone - 如何循环遍历 nsfetchedresultscontroller

ios - code sign wants sign using key - 不允许或总是允许但拒绝工作

objective-c - 要求传递到 Objective-C 方法的对象符合协议(protocol)?

android - Firebase实时数据库数组查询问题

ios - 是否保存了 Core Data 模型图 View ?

ios - 核心数据 : Count Number of Consecutive Days

objective-c - removeFromSuperview 处的 EXC_BAD_ACCESS - 使用 ARC

iphone - 在tableView中显示数组中的数据

ios - 如何禁用 VLCMediaPlayer 错误 AlertView?