NSPredicate 检索在 1:n 关系中属性不为 NIL 的所有对象

Posted

技术标签:

【中文标题】NSPredicate 检索在 1:n 关系中属性不为 NIL 的所有对象【英文标题】:NSPredicate to retrieve all objects whose attribute in an 1:n relationship is not NIL 【发布时间】:2012-04-19 18:27:23 【问题描述】:

我想为 Core Data 查询 构建 NSPredicate,它应该检索所有 IBEstPeriod 托管对象,其 1:n 关系 estType.consHistory.consType NIL * .

不幸的是,我没有找到任何关于这样一个 NSPredicate 应该是什么样子的线索。您有什么想法或建议吗?

谢谢!

【问题讨论】:

【参考方案1】:

对谓词中的多对关系使用“ANY”:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:[NSEntityDescription entityForName:@"IBEstPeriod" inManagedObjectContext:context]];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"ANY estType.consHistory.consType != nil"]];

 NSArray *fetchResult = [managedObjectContext executeFetchRequest:fetchRequest error:nil];

【讨论】:

以上是关于NSPredicate 检索在 1:n 关系中属性不为 NIL 的所有对象的主要内容,如果未能解决你的问题,请参考以下文章

NSPredicate:“添加”一对多关系CoreData中所有实体的属性值

如何设置 NSPredicate 来检查关系的属性?

使用 nspredicate 获取具有最大属性值的实体以及一个关系

NSPredicate 用于多对多关系

具有关系子实体属性的 NSPredicate

NSPredicate 按属性过滤核心数据关系 NSSet