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

时间:2013-12-28 01:24:33

标签: ios objective-c core-data

在我的应用中,我有两个实体ItemsLists。每个项目只属于一个列表,每个列表都有很多项目。因此,在模态中,实体具有以下关系:

  1. 指向一个列表的Items:to-one关系(belongs_to_list
  2. 指向多个项目的Lists:to-many关系(has_items
  3. 如何使用谓词获取项目以检查与其相关的列表是否等于我提供的特定列表?我不想通过列表获取项目(比如获取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];
    

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,以下谓词是正确的:

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

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