ios - 核心数据获取多对一关系对象

标签 ios objective-c core-data

在我的应用程序中,我有两个实体,即 ItemsLists。每个项目仅属于一个列表,每个列表又包含多个项目。因此,在模态中实体具有以下关系:

  1. 对于 Items:指向一个列表的一对一关系 (belongs_to_list)
  2. 对于列表:指向多个项目的一对多关系 (has_items)

如何使用谓词来获取项目,以检查与其相关的列表是否等于我提供的特定列表?我不想通过列表获取项目(例如获取 has_items 的对象)。我希望能够在谓词中使用 belongs_to_list 将其与我拥有的托管对象进行比较。我尝试了以下方法,但它不起作用。请问有什么帮助吗?

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Items" inManagedObjectContext:_managedObjectContext];
[fetchRequest setEntity:entity];

NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"item_detail" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"list.list_name == %@", [self.currentList valueForKey:@"list_name"]];
[fetchRequest setPredicate:predicate];

最佳答案

如果我很好地理解了您的问题,则以下谓词是正确的:

[NSPredicate predicateWithFormat:@"belongs_to_list == %@", [self currentList]];

如果这对您有用,请告诉我。

关于ios - 核心数据获取多对一关系对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20810014/

相关文章:

ios - Bonjour 服务发现找不到主机

objective-c - 无效字典 0)。为什么我会收到此错误?

objective-c - 连接到多个 Controller 的 iOS subview 小部件

ios - 核心数据卡住所有应用程序

ios - 更改模型后的核心数据迁移

javascript - IOS 应用程序 webview SVG ClipPath 问题

objective-c - reloadData 调用 numberOfSections、numberOfRows,而不是 cellForRowAtIndexPath

iPhone 应用程序启动时间和核心数据迁移

ios - 如何让 UIButton 在按下时缩小为 UIActivityIndi​​cator?

iOS 主线程卡住几秒钟