ios - 基于一对多值的NSPredicate过滤器

标签 ios core-data filtering nspredicate

我有2个具有一对多关系的实体。 Category代表我的部分标题,而SubSubCategory代表我的行。

Category
{
    name:string
    subs<-->>SubCategory
}

SubCategory
{
    name:string
    numbervalue:NSNumber
}

目前,我可以使用NSPredicate根据名称过滤我的部分。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name==%@",@"anamevalue"];

现在,我想进一步过滤此谓词,以仅返回具有Subcategorysubvalue == 1的类别。

如何根据一对多子对象中的值过滤Category实体?

我尝试过类似的方法,但是效果不好。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name==%@ AND subs.numbervalue==%@",@"anamevalue",1];

最佳答案

我将做如下谓词:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@ AND ANY subs.numbervalue == %@)", @"anamevalue", [NSNumber numberWithInt:1]];
ANY是一个谓词修饰符,仅当subs集合中至少有一个对象的比较结果为true时,它才返回true。

可以通过SUBQUERY完成相同的结果。

希望能帮助到你。

关于ios - 基于一对多值的NSPredicate过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10313599/

相关文章:

ios - 以编程方式模拟 Swift 中 UITableViewController 中的选择

objective-c - UItableview 不刷新核心数据的更新数据

swift - .propertiestofetch 在 Swift 中获取 CoreData 实体中的属性数组

Java Android方法需要很长时间才能执行?

iphone - iOS 中离线网站的最佳实践

ios - 在基类或扩展 Swift 的静态方法中获取派生类型的类型名称

iOS:从 NSDate 获取本地化时间

swift - 如何返回基于许多核心数据实体的 NSObject 数组?

javascript - 使用 JS 为您的 Web 应用程序编写编程语言,将其编译为带有 PHP 的 JS,以确保彻底过滤用户上传的 html5 Canvas 动画?

java - 在 Java 中过滤/排序大量数据