在我的应用程序中,我有两个实体,即 Items
和 Lists
。每个项目仅属于一个列表,每个列表又包含多个项目。因此,在模态中实体具有以下关系:
- 对于
Items
:指向一个列表的一对一关系 (belongs_to_list
) - 对于
列表
:指向多个项目的一对多关系 (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/